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;
+
+}

Reply via email to