Repository: beam
Updated Branches:
  refs/heads/master fe3d55403 -> 7126fdc6e


Add set and map readable test to StateInternalsTest


Project: http://git-wip-us.apache.org/repos/asf/beam/repo
Commit: http://git-wip-us.apache.org/repos/asf/beam/commit/4d186063
Tree: http://git-wip-us.apache.org/repos/asf/beam/tree/4d186063
Diff: http://git-wip-us.apache.org/repos/asf/beam/diff/4d186063

Branch: refs/heads/master
Commit: 4d18606378f43c7b0d3ac05d45ca6e0570e49eef
Parents: 10b166b
Author: JingsongLi <[email protected]>
Authored: Tue Jun 13 10:15:33 2017 +0800
Committer: Aljoscha Krettek <[email protected]>
Committed: Tue Jun 13 11:35:17 2017 +0200

----------------------------------------------------------------------
 .../beam/runners/core/StateInternalsTest.java   | 40 ++++++++++++++++++++
 1 file changed, 40 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/beam/blob/4d186063/runners/core-java/src/test/java/org/apache/beam/runners/core/StateInternalsTest.java
----------------------------------------------------------------------
diff --git 
a/runners/core-java/src/test/java/org/apache/beam/runners/core/StateInternalsTest.java
 
b/runners/core-java/src/test/java/org/apache/beam/runners/core/StateInternalsTest.java
index bf3156a..6011fb4 100644
--- 
a/runners/core-java/src/test/java/org/apache/beam/runners/core/StateInternalsTest.java
+++ 
b/runners/core-java/src/test/java/org/apache/beam/runners/core/StateInternalsTest.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
+import com.google.common.collect.Iterables;
 import java.util.Arrays;
 import java.util.Map;
 import java.util.Objects;
@@ -570,4 +571,43 @@ public abstract class StateInternalsTest {
     assertThat(value1.read(), equalTo(null));
     assertThat(value2.read(), equalTo(null));
   }
+
+  @Test
+  public void testSetReadable() throws Exception {
+    SetState<String> value = underTest.state(NAMESPACE_1, STRING_SET_ADDR);
+
+    // test contains
+    ReadableState<Boolean> readable = value.contains("A");
+    value.add("A");
+    assertFalse(readable.read());
+
+    // test addIfAbsent
+    value.addIfAbsent("B");
+    assertTrue(value.contains("B").read());
+  }
+
+  @Test
+  public void testMapReadable() throws Exception {
+    MapState<String, Integer> value = underTest.state(NAMESPACE_1, 
STRING_MAP_ADDR);
+
+    // test iterable, should just return a iterable view of the values 
contained in this map.
+    // The iterable is backed by the map, so changes to the map are reflected 
in the iterable.
+    ReadableState<Iterable<String>> keys = value.keys();
+    ReadableState<Iterable<Integer>> values = value.values();
+    ReadableState<Iterable<Map.Entry<String, Integer>>> entries = 
value.entries();
+    value.put("A", 1);
+    assertFalse(Iterables.isEmpty(keys.read()));
+    assertFalse(Iterables.isEmpty(values.read()));
+    assertFalse(Iterables.isEmpty(entries.read()));
+
+    // test get
+    ReadableState<Integer> get = value.get("B");
+    value.put("B", 2);
+    assertNull(get.read());
+
+    // test addIfAbsent
+    value.putIfAbsent("C", 3);
+    assertThat(value.get("C").read(), equalTo(3));
+  }
+
 }

Reply via email to