This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch v2 in repository https://gitbox.apache.org/repos/asf/causeway-app-petclinic.git
commit 691a73ea652e308075e1ecc80e1e7a6e3c58c439 Author: Dan Haywood <[email protected]> AuthorDate: Sun May 26 23:15:07 2024 +0100 adds happy case integ test for bookVisit --- .../integtests/PetOwner_bookVisit_IntegTest.java | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/module-visit/src/test/java/domainapp/modules/visit/integtests/PetOwner_bookVisit_IntegTest.java b/module-visit/src/test/java/domainapp/modules/visit/integtests/PetOwner_bookVisit_IntegTest.java new file mode 100644 index 0000000..727cd34 --- /dev/null +++ b/module-visit/src/test/java/domainapp/modules/visit/integtests/PetOwner_bookVisit_IntegTest.java @@ -0,0 +1,69 @@ +package domainapp.modules.visit.integtests; + +import java.time.LocalDateTime; +import java.util.List; + +import javax.inject.Inject; + +import org.apache.causeway.applib.services.wrapper.InvalidException; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; + +import org.apache.causeway.applib.services.clock.ClockService; +import org.apache.causeway.testing.fakedata.applib.services.FakeDataService; + +import domainapp.modules.petowner.dom.pet.Pet; +import domainapp.modules.petowner.dom.petowner.PetOwner; +import domainapp.modules.petowner.fixture.PetOwner_persona; +import domainapp.modules.visit.contributions.PetOwner_bookVisit; +import domainapp.modules.visit.dom.visit.Visit; +import domainapp.modules.visit.dom.visit.VisitRepository; + +public class PetOwner_bookVisit_IntegTest extends VisitModuleIntegTestAbstract { + + @BeforeEach + void setup() { + fixtureScripts.run(new PetOwner_persona.PersistAll()); + } + + @Test + public void happy_case() { + + // given + PetOwner somePetOwner = fakeDataService.enums() + .anyOf(PetOwner_persona.class) + .findUsing(serviceRegistry); + Pet somePet = fakeDataService.collections() + .anyOf(somePetOwner.getPets()); + + List<Visit> before = visitRepository.findByPetOwner(somePetOwner); + assertThat(before).isEmpty(); + + // when + LocalDateTime visitAt = clockService.getClock().nowAsLocalDateTime() + .plusDays(fakeDataService.ints().between(1, 3)); + + wrapMixin(PetOwner_bookVisit.class, somePetOwner).act(somePet, visitAt); + + // then + List<Visit> after = visitRepository.findByPetOwner(somePetOwner); + assertThat(after).hasSize(1); + + Visit visit = after.get(0); + + assertThat(visit.getPet()).isSameAs(somePet); + assertThat(visit.getPet().getPetOwner()).isSameAs(somePetOwner); + assertThat(visit.getVisitAt()).isEqualTo(visitAt); + } + + + + @Inject FakeDataService fakeDataService; + @Inject VisitRepository visitRepository; + @Inject ClockService clockService; + +}
