diff --git a/spring-boot-samples/spring-boot-sample-data-rest/pom.xml b/spring-boot-samples/spring-boot-sample-data-rest/pom.xml index 3bff03eb20f..18eb787aa27 100644 --- a/spring-boot-samples/spring-boot-sample-data-rest/pom.xml +++ b/spring-boot-samples/spring-boot-sample-data-rest/pom.xml @@ -37,6 +37,11 @@ spring-boot-starter-test test + + com.jayway.jsonpath + json-path + test + diff --git a/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/SampleDataRestApplicationTests.java b/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/SampleDataRestApplicationTests.java index 825584d5f24..2cbbb97b172 100644 --- a/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/SampleDataRestApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/SampleDataRestApplicationTests.java @@ -29,14 +29,17 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import static org.hamcrest.Matchers.containsString; +import static org.hamcrest.Matchers.hasSize; 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; /** * Integration test to run the application. * * @author Oliver Gierke + * @author Andy Wilkinson */ @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = SampleDataRestApplication.class) @@ -61,4 +64,22 @@ public class SampleDataRestApplicationTests { this.mvc.perform(get("/")).andExpect(status().isOk()) .andExpect(content().string(containsString("hotels"))); } + + @Test + public void findByNameAndCountry() throws Exception { + + this.mvc.perform( + get("/cities/search/findByNameAndCountryAllIgnoringCase?name=Melbourne&country=Australia")) + .andExpect(status().isOk()) + .andExpect(jsonPath("_embedded.citys", hasSize(1))); + } + + @Test + public void findByContaining() throws Exception { + + this.mvc.perform( + get("/cities/search/findByNameContainingAndCountryContainingAllIgnoringCase?name=&country=UK")) + .andExpect(status().isOk()) + .andExpect(jsonPath("_embedded.citys", hasSize(3))); + } } diff --git a/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/service/CityRepositoryIntegrationTests.java b/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/service/CityRepositoryIntegrationTests.java index 70f4eaf4ca4..6fba01038da 100644 --- a/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/service/CityRepositoryIntegrationTests.java +++ b/spring-boot-samples/spring-boot-sample-data-rest/src/test/java/sample/data/jpa/service/CityRepositoryIntegrationTests.java @@ -27,14 +27,17 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import sample.data.jpa.SampleDataRestApplication; import sample.data.jpa.domain.City; +import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.notNullValue; import static org.junit.Assert.assertThat; /** * Integration tests for {@link CityRepository}. * * @author Oliver Gierke + * @author Andy Wilkinson */ @RunWith(SpringJUnit4ClassRunner.class) @SpringApplicationConfiguration(classes = SampleDataRestApplication.class) @@ -49,4 +52,20 @@ public class CityRepositoryIntegrationTests { Page cities = this.repository.findAll(new PageRequest(0, 10)); assertThat(cities.getTotalElements(), is(greaterThan(20L))); } + + @Test + public void findByNameAndCountry() { + City city = this.repository.findByNameAndCountryAllIgnoringCase("Melbourne", + "Australia"); + assertThat(city, notNullValue()); + assertThat(city.getName(), is(equalTo("Melbourne"))); + } + + @Test + public void findContaining() { + Page cities = this.repository + .findByNameContainingAndCountryContainingAllIgnoringCase("", "UK", + new PageRequest(0, 10)); + assertThat(cities.getTotalElements(), is(equalTo(3L))); + } }