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:46 UTC

[isis-app-demo] 18/19: adds error scenario for bookVisit that a reason is required

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 f1a4dc2bec5719d42c1a3f2886677cec1956254e
Author: Dan Haywood <da...@haywood-associates.co.uk>
AuthorDate: Wed Oct 6 18:37:05 2021 +0100

    adds error scenario for bookVisit that a reason is required
---
 .../integtest/tests/Pet_bookVisit_IntegTest.java   | 22 ++++++++++++++++++++++
 1 file changed, 22 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
index 72d2b3f..2127efa 100644
--- 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
@@ -9,8 +9,11 @@ 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.Assertions.assertThatThrownBy;
 
 import org.apache.isis.applib.services.clock.ClockService;
+import org.apache.isis.applib.services.wrapper.DisabledException;
+import org.apache.isis.applib.services.wrapper.InvalidException;
 import org.apache.isis.testing.fakedata.applib.services.FakeDataService;
 
 import petclinic.modules.pets.dom.pet.Pet;
@@ -53,6 +56,25 @@ public class Pet_bookVisit_IntegTest extends VisitsModuleIntegTestAbstract {
         assertThat(visit.getReason()).isEqualTo(reason);
     }
 
+    @Test
+    public void reason_is_required() {
+
+        // given
+        Pet somePet = fakeDataService.enums().anyOf(Pet_persona.class)
+                        .findUsing(serviceRegistry);
+        List<Visit> before = visitRepository.findByPetOrderByVisitAtDesc(somePet);
+
+        // when, then
+        LocalDateTime visitAt = clockService.getClock().nowAsLocalDateTime()
+                                    .plusDays(fakeDataService.ints().between(1, 3));
+
+        assertThatThrownBy(() ->
+            wrapMixin(Pet_bookVisit.class, somePet).act(visitAt, null)
+        )
+        .isInstanceOf(InvalidException.class)
+        .hasMessage("'Reason' is mandatory");
+    }
+
     @Inject FakeDataService fakeDataService;
     @Inject VisitRepository visitRepository;
     @Inject ClockService clockService;