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)); + } + }
