BorrowingFacadeSpec added

This commit is contained in:
Wojtek Krzywiec
2020-09-20 12:32:04 +02:00
parent 58a9a0f95b
commit 42b08c8995

View File

@@ -0,0 +1,32 @@
package io.wkrzywiec.hexagonal.library.domain.borrowing
import io.wkrzywiec.hexagonal.library.domain.borrowing.core.BorrowingFacade
import io.wkrzywiec.hexagonal.library.domain.borrowing.core.model.AvailableBook
import io.wkrzywiec.hexagonal.library.domain.borrowing.core.model.MakeBookAvailableCommand
import io.wkrzywiec.hexagonal.library.domain.borrowing.core.ports.outgoing.BorrowingEventPublisher
import spock.lang.Specification
class BorrowingFacadeSpec extends Specification {
private BorrowingFacade facade;
private InMemoryBorrowingDatabase database;
private BorrowingEventPublisher eventPublisher;
def setup(){
database = new InMemoryBorrowingDatabase();
eventPublisher = new BorrowingEventPublisherFake();
facade = new BorrowingFacade(database, eventPublisher);
}
def "Make a book available"(){
given: "prepare a command"
def command = new MakeBookAvailableCommand(100L)
when: "receive MakeBookAvailableCommand"
facade.handle(command)
then: "check database to have this book as available"
database.availableBooks[100L].idAsLong == new AvailableBook(100L).idAsLong
}
}