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 <[email protected]>
Authored: Thu Feb 9 16:24:25 2017 -0800
Committer: Karen Miller <[email protected]>
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();
+  }
 
 }

Reply via email to