Add SimpleCacheResolver class to resolve instances of GemFire/Geode ClientCaches and peer Caches.

This commit is contained in:
John Blum
2020-05-09 21:36:27 -07:00
parent 596ea093ba
commit a4d452cfa4
4 changed files with 397 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
/*
* Copyright 2020 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 org.springframework.geode.cache;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
/**
* Unit Tests for {@link SimpleCacheResolver}.
*
* @author John Blum
* @see org.junit.Test
* @see org.apache.geode.cache.Cache
* @see org.apache.geode.cache.GemFireCache
* @see org.apache.geode.cache.client.ClientCache
* @see org.springframework.geode.cache.SimpleCacheResolver
* @since 1.3.0
*/
public class SimpleCacheResolverUnitTests {
@Test
public void getInstanceReturnsASingleInstance() {
SimpleCacheResolver cacheResolver = SimpleCacheResolver.getInstance();
assertThat(cacheResolver).isNotNull();
assertThat(cacheResolver).isSameAs(SimpleCacheResolver.getInstance());
}
@Test
public void resolveWhenNoCacheIsPresentReturnsEmptyOptional() {
assertThat(SimpleCacheResolver.getInstance().resolve().orElse(null)).isNull();
}
@Test
public void resolveClientCacheWhenNoClientCacheIsPresentReturnsEmptyOptional() {
assertThat(SimpleCacheResolver.getInstance().resolveClientCache().orElse(null)).isNull();
}
@Test
public void resolvePeerCacheWhenNoPeerCacheIsPresentReturnsEmptyOptional() {
assertThat(SimpleCacheResolver.getInstance().resolvePeerCache().orElse(null)).isNull();
}
@Test(expected = IllegalStateException.class)
public void requireCacheWhenNoCacheIsPresentThrowsIllegalStateException() {
try {
SimpleCacheResolver.getInstance().require();
}
catch (IllegalStateException expected) {
assertThat(expected).hasMessage("GemFireCache not found");
assertThat(expected).hasNoCause();
throw expected;
}
}
}

View File

@@ -0,0 +1,74 @@
/*
* Copyright 2020 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 org.springframework.geode.cache;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Optional;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.geode.cache.client.ClientCache;
import org.apache.geode.cache.client.ClientCacheFactory;
/**
* Integration Tests for {@link SimpleCacheResolver} using a GemFire/Geode {@link ClientCache}.
*
* @author John Blum
* @see org.junit.Test
* @see org.apache.geode.cache.client.ClientCache
* @see org.apache.geode.cache.client.ClientCacheFactory
* @see org.springframework.geode.cache.SimpleCacheResolver
* @since 1.3.0
*/
public class SimpleClientCacheResolverIntegrationTests {
private static ClientCache clientCache;
@BeforeClass
public static void createClientCache() {
clientCache = new ClientCacheFactory().create();
assertThat(clientCache).isNotNull();
}
@AfterClass
public static void destroyClientCache() {
Optional.ofNullable(clientCache).ifPresent(ClientCache::close);
clientCache = null;
}
@Test
public void resolveReturnsClientCache() {
assertThat(SimpleCacheResolver.getInstance().resolve().orElse(null)).isSameAs(clientCache);
}
@Test
public void resolveClientCacheReturnsClientCache() {
assertThat(SimpleCacheResolver.getInstance().resolveClientCache().orElse(null)).isSameAs(clientCache);
}
@Test
public void resolvePeerCacheReturnsEmptyOptional() {
assertThat(SimpleCacheResolver.getInstance().resolvePeerCache().orElse(null)).isNull();
}
@Test
public void requireReturnsClientCache() {
assertThat(SimpleCacheResolver.getInstance().<ClientCache>require()).isSameAs(clientCache);
}
}

View File

@@ -0,0 +1,73 @@
/*
* Copyright 2020 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 org.springframework.geode.cache;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.Optional;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.geode.cache.Cache;
import org.apache.geode.cache.CacheFactory;
/**
* Integration Tests for {@link SimpleCacheResolver} using a GemFire/Geode {@literal peer} {@link Cache}.
*
* @author John Blum
* @see org.junit.Test
* @see org.apache.geode.cache.Cache
* @see org.apache.geode.cache.CacheFactory
* @see org.springframework.geode.cache.SimpleCacheResolver
* @since 1.3.0
*/
public class SimplePeerCacheResolverIntegrationTests {
private static Cache peerCache;
@BeforeClass
public static void createPeerCache() {
peerCache = new CacheFactory().create();
assertThat(peerCache).isNotNull();
}
@AfterClass
public static void destroyPeerCache() {
Optional.ofNullable(peerCache).ifPresent(Cache::close);
}
@Test
public void resolveReturnsPeerCache() {
assertThat(SimpleCacheResolver.getInstance().resolve().orElse(null)).isSameAs(peerCache);
}
@Test
public void resolveClientCacheReturnsEmptyOptional() {
assertThat(SimpleCacheResolver.getInstance().resolveClientCache().orElse(null)).isNull();
}
@Test
public void resolvePeerCacheReturnsPeerCache() {
assertThat(SimpleCacheResolver.getInstance().resolvePeerCache().orElse(null)).isSameAs(peerCache);
}
@Test
public void requireReturnsPeerCache() {
assertThat(SimpleCacheResolver.getInstance().<Cache>require()).isSameAs(peerCache);
}
}