From 051b6abeb3d6242fdc239602e690ec06e94ca403 Mon Sep 17 00:00:00 2001 From: John Blum Date: Fri, 2 Aug 2019 16:57:56 -0700 Subject: [PATCH] Add Integration Tests covering the Counter Service appliaction in the Spring Geode Sample for Look-Aside Caching. --- ...ing-geode-samples-caching-lookaside.gradle | 6 ++ ...terServiceApplicationIntegrationTests.java | 79 +++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 spring-geode-samples/caching/look-aside/src/test/java/example/app/caching/lookaside/CounterServiceApplicationIntegrationTests.java diff --git a/spring-geode-samples/caching/look-aside/spring-geode-samples-caching-lookaside.gradle b/spring-geode-samples/caching/look-aside/spring-geode-samples-caching-lookaside.gradle index 9699835e..0b40efdd 100644 --- a/spring-geode-samples/caching/look-aside/spring-geode-samples-caching-lookaside.gradle +++ b/spring-geode-samples/caching/look-aside/spring-geode-samples-caching-lookaside.gradle @@ -17,6 +17,12 @@ dependencies { exclude group: "org.apache.logging.log4j", module: "log4j-to-slf4j" } + testCompile("org.springframework.boot:spring-boot-starter-test") { + exclude group: "org.apache.logging.log4j", module: "log4j-to-slf4j" + } + + testCompile "org.springframework.data:spring-data-geode-test" + } bootJar { diff --git a/spring-geode-samples/caching/look-aside/src/test/java/example/app/caching/lookaside/CounterServiceApplicationIntegrationTests.java b/spring-geode-samples/caching/look-aside/src/test/java/example/app/caching/lookaside/CounterServiceApplicationIntegrationTests.java new file mode 100644 index 00000000..7024e8e2 --- /dev/null +++ b/spring-geode-samples/caching/look-aside/src/test/java/example/app/caching/lookaside/CounterServiceApplicationIntegrationTests.java @@ -0,0 +1,79 @@ +/* + * Copyright 2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express + * or implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package example.app.caching.lookaside; + +import static org.assertj.core.api.Assertions.assertThat; + +import javax.annotation.Resource; + +import org.apache.geode.cache.Region; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.data.gemfire.tests.integration.IntegrationTestsSupport; +import org.springframework.test.context.junit4.SpringRunner; + +import example.app.caching.lookaside.service.CounterService; + +/** + * Integration Tests for the Counter Service application. + * + * @author John Blum + * @see org.junit.Test + * @see org.apache.geode.cache.Region + * @see org.springframework.boot.test.context.SpringBootTest + * @see org.springframework.data.gemfire.tests.integration.IntegrationTestsSupport + * @see org.springframework.test.context.junit4.SpringRunner + * @see example.app.caching.lookaside.service.CounterService + * @since 1.1.0 + */ +// tag::class[] +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) +@SuppressWarnings("unused") +public class CounterServiceApplicationIntegrationTests extends IntegrationTestsSupport { + + @Autowired + private CounterService counterService; + + @Resource(name = "Counters") + private Region counters; + + @Before + public void setup() { + + assertThat(this.counterService).isNotNull(); + assertThat(this.counters).isNotNull(); + assertThat(this.counters.getName()).isEqualTo("Counters"); + assertThat(this.counters).isEmpty(); + } + + @Test + public void counterServiceCachesCounts() { + + for (int count = 1; count < 10; count++) { + assertThat(this.counterService.getCount("TestCounter")).isEqualTo(count); + } + + assertThat(this.counterService.getCachedCount("TestCounter")).isEqualTo(9L); + assertThat(this.counterService.getCachedCount("TestCounter")).isEqualTo(9L); + assertThat(this.counterService.getCachedCount("MockCounter")).isEqualTo(1L); + assertThat(this.counterService.getCachedCount("MockCounter")).isEqualTo(1L); + } +} +// end::class[]