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