Files
library-hexagonal/src/test/java/io/wkrzywiec/hexagonal/library/domain/BookFacadeTest.java
2020-05-14 13:44:26 +02:00

45 lines
1.4 KiB
Java

package io.wkrzywiec.hexagonal.library.domain;
import io.wkrzywiec.hexagonal.library.TestData;
import io.wkrzywiec.hexagonal.library.domain.book.BookFacade;
import io.wkrzywiec.hexagonal.library.domain.book.dto.BookDetailsDTO;
import io.wkrzywiec.hexagonal.library.domain.book.dto.ExternalBookIdDTO;
import io.wkrzywiec.hexagonal.library.domain.book.ports.incoming.GetBookDetails;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class BookFacadeTest {
private GetBookDetails getBookDetails;
private InMemoryBookDatabase database;
private BookFacade facade;
@BeforeEach
public void init() {
database = new InMemoryBookDatabase();
getBookDetails = new GetBookDetailsMock();
facade = new BookFacade(database, getBookDetails);
}
@Test
@DisplayName("Correctly save a new book in a repository")
public void correctlySaveBook(){
//given
BookDetailsDTO expectedBook = TestData.homoDeusBookDetailsDTO();
ExternalBookIdDTO externalBookId = ExternalBookIdDTO
.builder()
.value(expectedBook.getBookExternalId())
.build();
//when
facade.handle(externalBookId);
//then
BookDetailsDTO actualBook = database.books.get(1L);
assertEquals(expectedBook, actualBook);
}
}