From 9fce20cea95d9fbab687b31f9702aaf5755d10fa Mon Sep 17 00:00:00 2001
From: Dave Syer <dsyer@pivotal.io>
Date: Wed, 11 Jan 2017 04:42:22 -0500
Subject: [PATCH] Add some more integration tests

---
 .../src/main/resources/application.properties |  6 +--
 .../web/PetResourceDatabaseTest.java          | 45 +++++++++++++++++++
 .../src/test/resources/application-test.yml   |  6 ---
 .../src/main/resources/application.properties |  6 +--
 .../vets/web/VetResourceDatabaseTest.java     | 32 +++++++++++++
 .../src/test/resources/application-test.yml   |  8 ----
 .../src/main/resources/application.properties |  6 +--
 .../visits/VisitResourceDatabaseTest.java     | 31 +++++++++++++
 .../src/test/resources/application-test.yml   |  6 ---
 9 files changed, 117 insertions(+), 29 deletions(-)
 create mode 100644 spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java
 create mode 100644 spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java
 create mode 100644 spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java

diff --git a/spring-petclinic-customers-service/src/main/resources/application.properties b/spring-petclinic-customers-service/src/main/resources/application.properties
index 807c3728..00b397d0 100644
--- a/spring-petclinic-customers-service/src/main/resources/application.properties
+++ b/spring-petclinic-customers-service/src/main/resources/application.properties
@@ -1,5 +1,5 @@
 server.port=0
-database=hsqldb
-spring.datasource.schema=classpath*:db/${database}/schema.sql
-spring.datasource.data=classpath*:db/${database}/data.sql
+petclinic.database=hsqldb
+spring.datasource.schema=classpath*:db/${petclinic.database}/schema.sql
+spring.datasource.data=classpath*:db/${petclinic.database}/data.sql
 logging.level.org.springframework=INFO
diff --git a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java
new file mode 100644
index 00000000..cf7b5ab7
--- /dev/null
+++ b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceDatabaseTest.java
@@ -0,0 +1,45 @@
+package org.springframework.samples.petclinic.customers.web;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.http.MediaType;
+import org.springframework.samples.petclinic.customers.model.Owner;
+import org.springframework.samples.petclinic.customers.model.OwnerRepository;
+import org.springframework.samples.petclinic.customers.model.Pet;
+import org.springframework.samples.petclinic.customers.model.PetRepository;
+import org.springframework.samples.petclinic.customers.model.PetType;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.servlet.MockMvc;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.BDDMockito.given;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
+import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
+
+/**
+ * @author Maciej Szarlinski
+ */
+@RunWith(SpringRunner.class)
+@DataJpaTest
+@ActiveProfiles("test")
+public class PetResourceDatabaseTest {
+
+    @Autowired
+    PetRepository petRepository;
+
+    @Autowired
+    OwnerRepository ownerRepository;
+
+    @Test
+    public void shouldGetAPet() throws Exception {
+        Pet pet = petRepository.findOne(2);
+        assertThat(petRepository.findAll()).contains(pet);
+    }
+}
diff --git a/spring-petclinic-customers-service/src/test/resources/application-test.yml b/spring-petclinic-customers-service/src/test/resources/application-test.yml
index 8eec317b..0a71b59e 100644
--- a/spring-petclinic-customers-service/src/test/resources/application-test.yml
+++ b/spring-petclinic-customers-service/src/test/resources/application-test.yml
@@ -1,9 +1,3 @@
-petclinic.database: hsqldb
-spring:
-  datasource:
-    schema: classpath*:db/${petclinic.database}/schema.sql
-    data: classpath*:db/${petclinic.database}/data.sql
-
 spring.jpa.hibernate.ddl-auto: none
 
 logging.level.org.springframework: INFO
diff --git a/spring-petclinic-vets-service/src/main/resources/application.properties b/spring-petclinic-vets-service/src/main/resources/application.properties
index b6e13383..52d0b2a2 100644
--- a/spring-petclinic-vets-service/src/main/resources/application.properties
+++ b/spring-petclinic-vets-service/src/main/resources/application.properties
@@ -1,7 +1,7 @@
 server.port=0
-database=hsqldb
-spring.datasource.schema=classpath*:db/${database}/schema.sql
-spring.datasource.data=classpath*:db/${database}/data.sql
+petclinic.database=hsqldb
+spring.datasource.schema=classpath*:db/${petclinic.database}/schema.sql
+spring.datasource.data=classpath*:db/${petclinic.database}/data.sql
 logging.level.org.springframework=INFO
 spring.profiles.active=production
 spring.cache.cache-names=vets
\ No newline at end of file
diff --git a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java
new file mode 100644
index 00000000..9d93e81e
--- /dev/null
+++ b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceDatabaseTest.java
@@ -0,0 +1,32 @@
+package org.springframework.samples.petclinic.vets.web;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.samples.petclinic.vets.model.Vet;
+import org.springframework.samples.petclinic.vets.model.VetRepository;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * @author Maciej Szarlinski
+ */
+@RunWith(SpringRunner.class)
+@DataJpaTest
+@ActiveProfiles("test")
+public class VetResourceDatabaseTest {
+
+    @Autowired
+    private VetRepository vetRepository;
+
+    @Test
+    public void shouldGetAListOfVetsInJSonFormat() throws Exception {
+        Vet vet = vetRepository.findOne(1);
+        assertThat(vetRepository.findAll()).contains(vet);
+    }
+}
diff --git a/spring-petclinic-vets-service/src/test/resources/application-test.yml b/spring-petclinic-vets-service/src/test/resources/application-test.yml
index a61009c5..77d3ecb3 100644
--- a/spring-petclinic-vets-service/src/test/resources/application-test.yml
+++ b/spring-petclinic-vets-service/src/test/resources/application-test.yml
@@ -1,13 +1,5 @@
-petclinic.database: hsqldb
-spring:
-  datasource:
-    schema: classpath*:db/${petclinic.database}/schema.sql
-    data: classpath*:db/${petclinic.database}/data.sql
-
 spring.jpa.hibernate.ddl-auto: none
 
-logging.level.org.springframework: INFO
-
 vets:
   cache:
     ttl: 10
diff --git a/spring-petclinic-visits-service/src/main/resources/application.properties b/spring-petclinic-visits-service/src/main/resources/application.properties
index 807c3728..00b397d0 100644
--- a/spring-petclinic-visits-service/src/main/resources/application.properties
+++ b/spring-petclinic-visits-service/src/main/resources/application.properties
@@ -1,5 +1,5 @@
 server.port=0
-database=hsqldb
-spring.datasource.schema=classpath*:db/${database}/schema.sql
-spring.datasource.data=classpath*:db/${database}/data.sql
+petclinic.database=hsqldb
+spring.datasource.schema=classpath*:db/${petclinic.database}/schema.sql
+spring.datasource.data=classpath*:db/${petclinic.database}/data.sql
 logging.level.org.springframework=INFO
diff --git a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java
new file mode 100644
index 00000000..06cf259f
--- /dev/null
+++ b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/VisitResourceDatabaseTest.java
@@ -0,0 +1,31 @@
+package org.springframework.samples.petclinic.visits;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
+import org.springframework.samples.petclinic.visits.model.Visit;
+import org.springframework.samples.petclinic.visits.model.VisitRepository;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * @author Maciej Szarlinski
+ */
+@RunWith(SpringRunner.class)
+@DataJpaTest
+@ActiveProfiles("test")
+public class VisitResourceDatabaseTest {
+
+    @Autowired
+    private VisitRepository visitRepository;
+
+    @Test
+    public void shouldGetAListOfVetsInJSonFormat() throws Exception {
+        Visit vet = visitRepository.findOne(1);
+        assertThat(visitRepository.findAll()).contains(vet);
+    }
+}
diff --git a/spring-petclinic-visits-service/src/test/resources/application-test.yml b/spring-petclinic-visits-service/src/test/resources/application-test.yml
index 8eec317b..0a71b59e 100644
--- a/spring-petclinic-visits-service/src/test/resources/application-test.yml
+++ b/spring-petclinic-visits-service/src/test/resources/application-test.yml
@@ -1,9 +1,3 @@
-petclinic.database: hsqldb
-spring:
-  datasource:
-    schema: classpath*:db/${petclinic.database}/schema.sql
-    data: classpath*:db/${petclinic.database}/data.sql
-
 spring.jpa.hibernate.ddl-auto: none
 
 logging.level.org.springframework: INFO
-- 
GitLab