You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by km...@apache.org on 2017/02/10 00:24:39 UTC
geode-examples git commit: GEODE-2231 Complete ConsumerTest
Repository: geode-examples
Updated Branches:
refs/heads/feature/GEODE-2231 65443bb77 -> b90991e1f
GEODE-2231 Complete ConsumerTest
Project: http://git-wip-us.apache.org/repos/asf/geode-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/geode-examples/commit/b90991e1
Tree: http://git-wip-us.apache.org/repos/asf/geode-examples/tree/b90991e1
Diff: http://git-wip-us.apache.org/repos/asf/geode-examples/diff/b90991e1
Branch: refs/heads/feature/GEODE-2231
Commit: b90991e1f189d315c6afbcff191b7ae9ec949859
Parents: 65443bb
Author: Karen Miller <km...@pivotal.io>
Authored: Thu Feb 9 16:24:25 2017 -0800
Committer: Karen Miller <km...@pivotal.io>
Committed: Thu Feb 9 16:24:25 2017 -0800
----------------------------------------------------------------------
.../geode/examples/partitioned/BaseClient.java | 2 +-
.../examples/partitioned/ConsumerTest.java | 78 ++++++++++++++++++--
2 files changed, 74 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/geode-examples/blob/b90991e1/partitioned/src/main/java/org/apache/geode/examples/partitioned/BaseClient.java
----------------------------------------------------------------------
diff --git a/partitioned/src/main/java/org/apache/geode/examples/partitioned/BaseClient.java b/partitioned/src/main/java/org/apache/geode/examples/partitioned/BaseClient.java
index 0b66cb6..5e51a66 100644
--- a/partitioned/src/main/java/org/apache/geode/examples/partitioned/BaseClient.java
+++ b/partitioned/src/main/java/org/apache/geode/examples/partitioned/BaseClient.java
@@ -59,7 +59,7 @@ public abstract class BaseClient {
protected Region getRegion2() {
if (region2 == null) {
region2 = getClientCache()
- .<EmployeeKey, EmployeeData>createClientRegionFactory(ClientRegionShortcut.PROXY)
+ .<BadEmployeeKey, EmployeeData>createClientRegionFactory(ClientRegionShortcut.PROXY)
.create(REGION2_NAME);
}
return (region2);
http://git-wip-us.apache.org/repos/asf/geode-examples/blob/b90991e1/partitioned/src/test/java/org/apache/geode/examples/partitioned/ConsumerTest.java
----------------------------------------------------------------------
diff --git a/partitioned/src/test/java/org/apache/geode/examples/partitioned/ConsumerTest.java b/partitioned/src/test/java/org/apache/geode/examples/partitioned/ConsumerTest.java
index 11dac48..e0b3709 100644
--- a/partitioned/src/test/java/org/apache/geode/examples/partitioned/ConsumerTest.java
+++ b/partitioned/src/test/java/org/apache/geode/examples/partitioned/ConsumerTest.java
@@ -18,8 +18,12 @@ package org.apache.geode.examples.partitioned;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
+import java.util.HashMap;
+import java.util.Map;
import java.util.Set;
+import org.apache.geode.cache.client.ClientRegionFactory;
+import org.apache.geode.cache.client.ClientRegionShortcut;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -28,6 +32,8 @@ import org.junit.rules.ExpectedException;
import org.apache.geode.cache.Region;
import org.apache.geode.cache.client.ClientCache;
import org.apache.geode.cache.client.NoAvailableLocatorsException;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
public class ConsumerTest {
@@ -36,17 +42,60 @@ public class ConsumerTest {
private Consumer consumer;
private ClientCache clientCache = mock(ClientCache.class);
- private Region region = mock(Region.class);
+ private Region region1 = mock(Region.class);
+ private Region region2 = mock(Region.class);
+ private ClientRegionFactory clientRegionFactory = mock(ClientRegionFactory.class);
private Set keys = mock(Set.class);
@Before
public void setup() {
- when(region.getName()).thenReturn(Consumer.REGION1_NAME);
+ when(region1.getName()).thenReturn(Consumer.REGION1_NAME);
+ when(region2.getName()).thenReturn(Consumer.REGION2_NAME);
when(keys.size()).thenReturn(Consumer.NUM_ENTRIES);
- when(region.keySetOnServer()).thenReturn(keys);
- when(clientCache.getRegion(any())).thenReturn(region);
+ // when(region1.keySetOnServer()).thenReturn(keys);
+ // when(region2.keySetOnServer()).thenReturn(keys);
+ when(clientCache.createClientRegionFactory(ClientRegionShortcut.PROXY))
+ .thenReturn(clientRegionFactory);
+ when(clientRegionFactory.create(Consumer.REGION1_NAME)).thenReturn(region1);
+ when(clientRegionFactory.create(Consumer.REGION2_NAME)).thenReturn(region2);
+
+ /* Make a small map that will provide values as a region would */
+ Map<EmployeeKey, EmployeeData> emplMap = new HashMap<>();
+ EmployeeKey k1 = new EmployeeKey("Bertie Bell", 170);
+ EmployeeData d1 = new EmployeeData(k1, 72000, 40);
+ emplMap.put(k1, d1);
+ EmployeeKey k2 = new EmployeeKey("Toni Tiptoe", 180);
+ EmployeeData d2 = new EmployeeData(k2, 70000, 40);
+ emplMap.put(k2, d2);
+ /* Mock the region keySetOnServer,size, and get methods with values from the map */
+ when(region1.keySetOnServer()).thenReturn(emplMap.keySet());
+ when(region1.size()).thenReturn(emplMap.size());
+ when(region1.get(eq(k1))).thenReturn(emplMap.get(d1));
+ when(region1.get(eq(k2))).thenReturn(emplMap.get(d2));
+
+ Map<BadEmployeeKey, EmployeeData> badEmplMap = new HashMap<>();
+ BadEmployeeKey bk1 = new BadEmployeeKey("Bertie Bell", 170);
+ EmployeeData bd1 = new EmployeeData(bk1, 72000, 40);
+ badEmplMap.put(bk1, bd1);
+ BadEmployeeKey bk2 = new BadEmployeeKey("Toni Tiptoe", 180);
+ EmployeeData bd2 = new EmployeeData(bk2, 70000, 40);
+ badEmplMap.put(bk2, bd2);
+ /* Mock the region keySetOnServer,size, and get methods with values from the map */
+ when(region2.keySetOnServer()).thenReturn(badEmplMap.keySet());
+ when(region2.size()).thenReturn(badEmplMap.size());
+ when(region2.get(eq(bk1))).thenReturn(bd1);
+ when(region2.get(eq(bk2))).thenReturn(bd2);
+
+ // when(region1.get(any())).then(new Answer() {
+ //
+ // @Override
+ // public Object answer(InvocationOnMock invocation) throws Throwable {
+ // EmployeeKey key = invocation.getArgumentAt(0, EmployeeKey.class);
+ // return emplMap.get(key);
+ // }
+ // });
+
consumer = new Consumer(clientCache);
- consumer.setRegion1(region);
}
@Test
@@ -54,5 +103,24 @@ public class ConsumerTest {
assertTrue(consumer.NUM_ENTRIES > 0);
}
+ @Test
+ public void testConsumerGetRegion1() {
+ assertEquals("Region names do not match", Consumer.REGION1_NAME,
+ consumer.getRegion1().getName());
+ }
+
+ /*
+ * Doesn't work because mocked clientRegionFactory.create(any()) returns region1, not region2
+ */
+ @Test
+ public void testConsumerGetRegion2() {
+ assertEquals("Region names do not match", Consumer.REGION2_NAME,
+ consumer.getRegion2().getName());
+ }
+
+ @Test
+ public void testPrintRegionContents() {
+ consumer.printRegionContents();
+ }
}