You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/05/26 23:15:21 UTC
(causeway-app-petclinic) 16/17: adds happy case integ test for bookVisit
This is an automated email from the ASF dual-hosted git repository.
danhaywood pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway-app-petclinic.git
commit 29985d5f962a36cae5634547861aa182d2d07c81
Author: Dan Haywood <da...@haywood-associates.co.uk>
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;
+
+}