From b307543228e2aac45885f84e5d090c892fdbe716 Mon Sep 17 00:00:00 2001 From: "Sanders (aider)" Date: Sun, 9 Feb 2025 20:18:26 +0300 Subject: [PATCH] test: enhance handleNewAddRequest test with ArgumentCaptor and explicit assertions --- .../impl/BookCreationServiceImplTest.java | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/test/java/ru/cathub/telegabot/service/impl/BookCreationServiceImplTest.java b/src/test/java/ru/cathub/telegabot/service/impl/BookCreationServiceImplTest.java index e0eb424..b4f444c 100644 --- a/src/test/java/ru/cathub/telegabot/service/impl/BookCreationServiceImplTest.java +++ b/src/test/java/ru/cathub/telegabot/service/impl/BookCreationServiceImplTest.java @@ -34,21 +34,36 @@ class BookCreationServiceImplTest { @BeforeEach void setUp() { - testUser = new BotUser(1L, "testuser"); + testUser = new BotUser(); + testUser.setId(1L); // Явная установка ID + testUser.setUsername("testuser"); testCache = new BookCreationCache(); } @Test void handleNewAddRequest_ShouldInitializeCache() { - when(bookCacheService.updateCache(anyLong(), any(BookCreationCache.class))) + // Используем ArgumentCaptor для захвата аргументов + ArgumentCaptor userIdCaptor = ArgumentCaptor.forClass(Long.class); + ArgumentCaptor cacheCaptor = ArgumentCaptor.forClass(BookCreationCache.class); + + // Мокируем вызов с конкретными аргументами + when(bookCacheService.updateCache(eq(1L), any(BookCreationCache.class))) .thenReturn(testCache); - bookCreationService.handleNewAddRequest(testUser, ADD_BOOK); + + // Проверяем аргументы вызова + verify(bookCacheService).updateCache(userIdCaptor.capture(), cacheCaptor.capture()); - verify(bookCacheService).updateCache(eq(1L), any(BookCreationCache.class)); - verify(telegramClientService).sendMessageWithMarkdown(eq(testUser), - contains("Введите название книги"), isNull()); + // Убеждаемся в корректности параметров + assertEquals(1L, userIdCaptor.getValue()); + assertEquals(BookCreationCache.CreationState.ADDING_TITLE, cacheCaptor.getValue().getCreationState()); + + verify(telegramClientService).sendMessageWithMarkdown( + eq(testUser), + contains("Введите название книги"), + isNull() + ); } @Test