Belma Jakupovic - Mockito additional answers (#9041)
This commit is contained in:
parent
0b1501aa96
commit
b30ee62805
@ -0,0 +1,58 @@
|
||||
package com.baeldung.mockito.additionalanswers;
|
||||
|
||||
public class Book {
|
||||
|
||||
private Long bookId;
|
||||
|
||||
private String title;
|
||||
|
||||
private String author;
|
||||
|
||||
private int numberOfPages;
|
||||
|
||||
public Book(String title, String author, int numberOfPages) {
|
||||
this.title = title;
|
||||
this.author = author;
|
||||
this.numberOfPages = numberOfPages;
|
||||
}
|
||||
|
||||
public Book(Long bookId, String title, String author, int numberOfPages) {
|
||||
this.bookId = bookId;
|
||||
this.title = title;
|
||||
this.author = author;
|
||||
this.numberOfPages = numberOfPages;
|
||||
}
|
||||
|
||||
public Long getBookId() {
|
||||
return bookId;
|
||||
}
|
||||
|
||||
public void setBookId(Long bookId) {
|
||||
this.bookId = bookId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getAuthor() {
|
||||
return author;
|
||||
}
|
||||
|
||||
public void setAuthor(String author) {
|
||||
this.author = author;
|
||||
}
|
||||
|
||||
public int getNumberOfPages() {
|
||||
return numberOfPages;
|
||||
}
|
||||
|
||||
public void setNumberOfPages(int numberOfPages) {
|
||||
this.numberOfPages = numberOfPages;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,17 @@
|
||||
package com.baeldung.mockito.additionalanswers;
|
||||
|
||||
public class BookRepository {
|
||||
public Book getByBookId(Long bookId) {
|
||||
return new Book(bookId, "To Kill a Mocking Bird", "Harper Lee", 256);
|
||||
}
|
||||
|
||||
public Book save(Book book) {
|
||||
return new Book(book.getBookId(), book.getTitle(), book.getAuthor(), book.getNumberOfPages());
|
||||
}
|
||||
|
||||
public Book checkIfEquals(Book bookOne, Book bookTwo, Book bookThree) {
|
||||
if (bookOne.equals(bookTwo) && bookTwo.equals(bookThree) && bookThree.equals(bookOne)) {
|
||||
return bookOne;
|
||||
} else return bookTwo;
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.baeldung.mockito.additionalanswers;
|
||||
|
||||
public class BookService {
|
||||
private final BookRepository bookRepository;
|
||||
|
||||
public BookService(BookRepository bookRepository) {
|
||||
this.bookRepository = bookRepository;
|
||||
}
|
||||
|
||||
public Book getByBookId(Long id) {
|
||||
return bookRepository.getByBookId(id);
|
||||
}
|
||||
|
||||
public Book save(Book book) {
|
||||
return bookRepository.save(book);
|
||||
}
|
||||
|
||||
public Book checkifEquals(Book book1, Book book2, Book book3) {
|
||||
return bookRepository.checkIfEquals(book1, book2, book3);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,68 @@
|
||||
package com.baeldung.mockito.additionalanswers;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.AdditionalAnswers;
|
||||
import org.mockito.InjectMocks;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class BookServiceUnitTest {
|
||||
@InjectMocks
|
||||
private BookService bookService;
|
||||
|
||||
@Mock
|
||||
private BookRepository bookRepository;
|
||||
|
||||
@Test
|
||||
public void givenSaveMethodMocked_whenSaveInvoked_ThenReturnFirstArgument_UnitTest() {
|
||||
Book book = new Book("To Kill a Mocking Bird", "Harper Lee", 256);
|
||||
Mockito.when(bookRepository.save(any(Book.class))).then(AdditionalAnswers.returnsFirstArg());
|
||||
|
||||
Book savedBook = bookService.save(book);
|
||||
|
||||
assertEquals(savedBook, book);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenCheckifEqualsMethodMocked_whenCheckifEqualsInvoked_ThenReturnSecondArgument_UnitTest() {
|
||||
Book book1 = new Book(1L, "The Stranger", "Albert Camus", 456);
|
||||
Book book2 = new Book(2L, "Animal Farm", "George Orwell", 300);
|
||||
Book book3 = new Book(3L, "Romeo and Juliet", "William Shakespeare", 200);
|
||||
|
||||
Mockito.when(bookRepository.checkIfEquals(any(Book.class), any(Book.class), any(Book.class))).then(AdditionalAnswers.returnsSecondArg());
|
||||
|
||||
Book secondBook = bookService.checkifEquals(book1, book2, book3);
|
||||
|
||||
assertEquals(secondBook, book2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenCheckifEqualsMethodMocked_whenCheckifEqualsInvoked_ThenReturnLastArgument_UnitTest() {
|
||||
Book book1 = new Book(1L, "The Stranger", "Albert Camus", 456);
|
||||
Book book2 = new Book(2L, "Animal Farm", "George Orwell", 300);
|
||||
Book book3 = new Book(3L, "Romeo and Juliet", "William Shakespeare", 200);
|
||||
|
||||
Mockito.when(bookRepository.checkIfEquals(any(Book.class), any(Book.class), any(Book.class))).then(AdditionalAnswers.returnsLastArg());
|
||||
|
||||
Book lastBook = bookService.checkifEquals(book1, book2, book3);
|
||||
assertEquals(lastBook, book3);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenCheckifEqualsMethodMocked_whenCheckifEqualsInvoked_ThenReturnArgumentAtIndex_UnitTest() {
|
||||
Book book1 = new Book(1L, "The Stranger", "Albert Camus", 456);
|
||||
Book book2 = new Book(2L, "Animal Farm", "George Orwell", 300);
|
||||
Book book3 = new Book(3L, "Romeo and Juliet", "William Shakespeare", 200);
|
||||
|
||||
Mockito.when(bookRepository.checkIfEquals(any(Book.class), any(Book.class), any(Book.class))).then(AdditionalAnswers.returnsArgAt(1));
|
||||
|
||||
Book bookOnIndex = bookService.checkifEquals(book1, book2, book3);
|
||||
|
||||
assertEquals(bookOnIndex, book2);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user