Skip to content

Commit 801af16

Browse files
committed
improve assertion safety with ArgumentCaptor
1 parent c453a3c commit 801af16

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/test/java/com/codesungrape/hmcts/bookapi/BookServiceTest.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,14 +216,22 @@ void testCreateBook_VeryLongFields_Success(
216216
// Act
217217
Book result = testBookService.createBook(request);
218218

219-
// Assert
220-
assertNotNull(result);
219+
// Assert 1: Verify the result flow
220+
assertEquals(expectedBook, result);
221221
assertEquals(expectedBook.getId(), result.getId());
222222
assertEquals(expectedBook.getTitle(), result.getTitle());
223223
assertEquals(expectedBook.getSynopsis(), result.getSynopsis());
224224
assertEquals(expectedBook.getAuthor(), result.getAuthor());
225225

226-
verify(testBookRepository, times(1)).save(any(Book.class));
226+
// --- CAPTOR LOGIC ---
227+
ArgumentCaptor<Book> bookCaptor = ArgumentCaptor.forClass(Book.class);
228+
verify(testBookRepository).save(bookCaptor.capture());
229+
Book bookSentToDb = bookCaptor.getValue();
230+
231+
// Assert 2: Verify the Service correctly mapped the LONG strings
232+
// This ensures the service didn't truncate/alter the data
233+
assertEquals(request.title(), bookSentToDb.getTitle());
234+
assertEquals(request.synopsis(), bookSentToDb.getSynopsis());
227235
}
228236

229237
// --------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)