You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/10/06 17:45:45 UTC

[isis-app-demo] 17/19: adds happy case for Pet#bookVisit integ test

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/isis-app-demo.git

commit 7f32eacc7fa1ec2c42265db9e4aabf9950939a2a
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Oct 6 18:22:49 2021 +0100

    adds happy case for Pet#bookVisit integ test
---
 .../integtest/tests/Pet_bookVisit_IntegTest.java   | 60 ++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/module-visits/src/test/java/petclinic/modules/visits/integtest/tests/Pet_bookVisit_IntegTest.java b/module-visits/src/test/java/petclinic/modules/visits/integtest/tests/Pet_bookVisit_IntegTest.java
new file mode 100644
index 0000000..72d2b3f
--- /dev/null
+++ b/module-visits/src/test/java/petclinic/modules/visits/integtest/tests/Pet_bookVisit_IntegTest.java
@@ -0,0 +1,60 @@
+package petclinic.modules.visits.integtest.tests;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+import javax.inject.Inject;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import org.apache.isis.applib.services.clock.ClockService;
+import org.apache.isis.testing.fakedata.applib.services.FakeDataService;
+
+import petclinic.modules.pets.dom.pet.Pet;
+import petclinic.modules.pets.fixture.pet.Pet_persona;
+import petclinic.modules.visits.contributions.pet.Pet_bookVisit;
+import petclinic.modules.visits.dom.visit.Visit;
+import petclinic.modules.visits.dom.visit.VisitRepository;
+import petclinic.modules.visits.integtest.VisitsModuleIntegTestAbstract;
+
+public class Pet_bookVisit_IntegTest extends VisitsModuleIntegTestAbstract {
+
+    @BeforeEach
+    void setup() {
+        fixtureScripts.run(new Pet_persona.PersistAll());
+    }
+
+    @Test
+    public void happy_case() {
+
+        // given
+        Pet somePet = fakeDataService.enums().anyOf(Pet_persona.class)
+                        .findUsing(serviceRegistry);
+        List<Visit> before = visitRepository.findByPetOrderByVisitAtDesc(somePet);
+
+        // when
+        LocalDateTime visitAt = clockService.getClock().nowAsLocalDateTime()
+                                    .plusDays(fakeDataService.ints().between(1, 3));
+        String reason = fakeDataService.strings().upper(40);
+
+        wrapMixin(Pet_bookVisit.class, somePet).act(visitAt, reason);
+
+        // then
+        List<Visit> after = visitRepository.findByPetOrderByVisitAtDesc(somePet);
+        after.removeAll(before);
+        assertThat(after).hasSize(1);
+        Visit visit = after.get(0);
+
+        assertThat(visit.getPet()).isSameAs(somePet);
+        assertThat(visit.getVisitAt()).isEqualTo(visitAt);
+        assertThat(visit.getReason()).isEqualTo(reason);
+    }
+
+    @Inject FakeDataService fakeDataService;
+    @Inject VisitRepository visitRepository;
+    @Inject ClockService clockService;
+
+}