@Test public void testKeysCopied() { LocalMap<JsonObject, String> map = sharedData.getLocalMap("foo"); JsonObject json1 = new JsonObject().put("foo1", "val1"); JsonObject json2 = new JsonObject().put("foo2", "val1"); JsonObject json3 = new JsonObject().put("foo3", "val1"); map.put(json1, "val1"); map.put(json2, "val2"); map.put(json3, "val3"); assertEquals(3, map.size()); Set<JsonObject> keys = map.keySet(); assertEquals(3, keys.size()); assertTrue(keys.contains(json1)); assertTrue(keys.contains(json2)); assertTrue(keys.contains(json3)); // copied assertFalse(containsExact(keys, json1)); assertFalse(containsExact(keys, json2)); assertFalse(containsExact(keys, json3)); }
@Test public void testLocalMaps() { LocalMap<String, String> map = sharedData.getLocalMap("test-map"); assertNotNull(map); assertTrue(map.isEmpty()); assertEquals(map.size(), 0); assertEquals(map.entrySet().size(), 0); assertEquals(map.values().size(), 0); assertEquals(map.keySet().size(), 0); assertEquals(map.getOrDefault("foo", "miss"), "miss"); assertNull(map.putIfAbsent("foo", "there")); assertNotNull(map.putIfAbsent("foo", "there")); assertEquals(map.getOrDefault("foo", "miss"), "there"); assertEquals(map.get("foo"), "there"); assertNull(map.get("missing")); assertFalse(map.isEmpty()); assertEquals(map.size(), 1); assertEquals(map.entrySet().size(), 1); assertEquals(map.values().size(), 1); assertEquals(map.keySet().size(), 1); assertFalse(map.removeIfPresent("missing", "nope")); assertTrue(map.removeIfPresent("foo", "there")); assertNull(map.put("foo", "there")); assertFalse(map.replaceIfPresent("missing", "nope", "something")); assertTrue(map.replaceIfPresent("foo", "there", "something")); assertEquals(map.get("foo"), "something");
assertEquals(d, map.get(key)); assertEquals(f, map.get(key)); assertEquals(b, map.get(key)); assertEquals(s, map.get(key)); assertEquals(i, map.get(key)); assertEquals(l, map.get(key)); assertTrue((Boolean)map.get(key)); assertFalse((Boolean) map.get(key)); assertEquals(c, map.get(key)); assertTrue(got1 != buff); // Make sure it's copied assertEquals(buff, map.get(key)); Buffer got2 = (Buffer)map.get(key); assertTrue(got1 != got2); // Should be copied each time assertTrue(got2 != buff); assertEquals(buff, map.get(key)); map.put(key, bytes); byte[] bgot1 = (byte[]) map.get(key); assertTrue(bgot1 != bytes); assertTrue(TestUtils.byteArraysEqual(bytes, bgot1));
private void testMapOperationResult(BiFunction<LocalMap<String, ShareableObject>, String, ShareableObject> operation) { final String key = "key"; final ShareableObject value = new ShareableObject("some test data"); final LocalMap<String, ShareableObject> map = vertx.sharedData().getLocalMap("foo"); assertNull(map.put(key, value)); final ShareableObject result = operation.apply(map, key); assertEquals(value, result); assertNotSame(value, result); }
@Test public void testValues() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); map.put("foo1", "val1"); map.put("foo2", "val2"); map.put("foo3", "val3"); assertEquals(3, map.size()); Collection<String> values = map.values(); assertEquals(3, values.size()); assertTrue(values.contains("val1")); assertTrue(values.contains("val2")); assertTrue(values.contains("val3")); }
@Test public void testMap() throws Exception { assertNullPointerException(() -> sharedData.getLocalMap(null)); LocalMap<String, String> map = sharedData.getLocalMap("foo"); LocalMap<String, String> map2 = sharedData.getLocalMap("foo"); assertTrue(map == map2); LocalMap<String, String> map3 = sharedData.getLocalMap("bar"); assertFalse(map3 == map2); map.close(); LocalMap<String, String> map4 = sharedData.getLocalMap("foo"); assertFalse(map4 == map3); }
@Test public void testCopyOnGet() { testMapOperationResult(LocalMap::get); }
@Test public void deleteElementOnComputeFunctionReturningNull() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); // put an initial value map.put("hello", "world"); // retuning null we should remove the entry map.computeIfPresent("hello", (key, oldValue) -> null); assertFalse(map.containsKey("hello")); // Same for LocalMap#compute and LocalMap#compute map.compute("hello", (key, oldValue) -> null); assertFalse(map.containsKey("hello")); // put a value one more time map.put("hello", "world"); map.merge("hello", "world!!!!!!", (key, oldValue) -> null); assertFalse(map.containsKey("hello")); map.computeIfAbsent("hello", key -> null); assertFalse(map.containsKey("hello")); }
private void testMapOperationResult(BiFunction<LocalMap<String, ShareableObject>, String, ShareableObject> operation) { final String key = "key"; final ShareableObject value = new ShareableObject("some test data"); final LocalMap<String, ShareableObject> map = vertx.sharedData().getLocalMap("foo"); assertNull(map.put(key, value)); final ShareableObject result = operation.apply(map, key); assertEquals(value, result); assertNotSame(value, result); }
@Test public void testKeys() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); map.put("foo1", "val1"); map.put("foo2", "val2"); map.put("foo3", "val3"); assertEquals(3, map.size()); Set<String> keys = map.keySet(); assertEquals(3, keys.size()); assertTrue(keys.contains("foo1")); assertTrue(keys.contains("foo2")); assertTrue(keys.contains("foo3")); }
@Test public void testMap() throws Exception { assertNullPointerException(() -> sharedData.getLocalMap(null)); LocalMap<String, String> map = sharedData.getLocalMap("foo"); LocalMap<String, String> map2 = sharedData.getLocalMap("foo"); assertTrue(map == map2); LocalMap<String, String> map3 = sharedData.getLocalMap("bar"); assertFalse(map3 == map2); map.close(); LocalMap<String, String> map4 = sharedData.getLocalMap("foo"); assertFalse(map4 == map3); }
@Test public void testCopyOnRemove() { testMapOperationResult(LocalMap::remove); }
@Test public void deleteElementOnComputeFunctionReturningNull() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); // put an initial value map.put("hello", "world"); // retuning null we should remove the entry map.computeIfPresent("hello", (key, oldValue) -> null); assertFalse(map.containsKey("hello")); // Same for LocalMap#compute and LocalMap#compute map.compute("hello", (key, oldValue) -> null); assertFalse(map.containsKey("hello")); // put a value one more time map.put("hello", "world"); map.merge("hello", "world!!!!!!", (key, oldValue) -> null); assertFalse(map.containsKey("hello")); map.computeIfAbsent("hello", key -> null); assertFalse(map.containsKey("hello")); }
@Test public void testValuesCopied() { LocalMap<String, JsonObject> map = sharedData.getLocalMap("foo"); JsonObject json1 = new JsonObject().put("foo1", "val1"); JsonObject json2 = new JsonObject().put("foo2", "val1"); JsonObject json3 = new JsonObject().put("foo3", "val1"); map.put("key1", json1); map.put("key2", json2); map.put("key3", json3); assertEquals(3, map.size()); Collection<JsonObject> values = map.values(); assertEquals(3, values.size()); assertTrue(values.contains(json1)); assertTrue(values.contains(json2)); assertTrue(values.contains(json3)); // copied assertFalse(containsExact(values, json1)); assertFalse(containsExact(values, json2)); assertFalse(containsExact(values, json3)); }
@Test public void testLocalMaps() { LocalMap<String, String> map = sharedData.getLocalMap("test-map"); assertNotNull(map); assertTrue(map.isEmpty()); assertEquals(map.size(), 0); assertEquals(map.entrySet().size(), 0); assertEquals(map.values().size(), 0); assertEquals(map.keySet().size(), 0); assertEquals(map.getOrDefault("foo", "miss"), "miss"); assertNull(map.putIfAbsent("foo", "there")); assertNotNull(map.putIfAbsent("foo", "there")); assertEquals(map.getOrDefault("foo", "miss"), "there"); assertEquals(map.get("foo"), "there"); assertNull(map.get("missing")); assertFalse(map.isEmpty()); assertEquals(map.size(), 1); assertEquals(map.entrySet().size(), 1); assertEquals(map.values().size(), 1); assertEquals(map.keySet().size(), 1); assertFalse(map.removeIfPresent("missing", "nope")); assertTrue(map.removeIfPresent("foo", "there")); assertNull(map.put("foo", "there")); assertFalse(map.replaceIfPresent("missing", "nope", "something")); assertTrue(map.replaceIfPresent("foo", "there", "something")); assertEquals(map.get("foo"), "something");
assertEquals(d, map.get(key)); assertEquals(f, map.get(key)); assertEquals(b, map.get(key)); assertEquals(s, map.get(key)); assertEquals(i, map.get(key)); assertEquals(l, map.get(key)); assertTrue((Boolean)map.get(key)); assertFalse((Boolean) map.get(key)); assertEquals(c, map.get(key)); assertTrue(got1 != buff); // Make sure it's copied assertEquals(buff, map.get(key)); Buffer got2 = (Buffer)map.get(key); assertTrue(got1 != got2); // Should be copied each time assertTrue(got2 != buff); assertEquals(buff, map.get(key)); map.put(key, bytes); byte[] bgot1 = (byte[]) map.get(key); assertTrue(bgot1 != bytes); assertTrue(TestUtils.byteArraysEqual(bytes, bgot1));
@Test public void testKeys() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); map.put("foo1", "val1"); map.put("foo2", "val2"); map.put("foo3", "val3"); assertEquals(3, map.size()); Set<String> keys = map.keySet(); assertEquals(3, keys.size()); assertTrue(keys.contains("foo1")); assertTrue(keys.contains("foo2")); assertTrue(keys.contains("foo3")); }
@Test public void testCopyOnPutIfAbsent() { testMapOperationResult((map, key) -> map.putIfAbsent(key, new ShareableObject("some other test data"))); }
@Test public void testValuesCopied() { LocalMap<String, JsonObject> map = sharedData.getLocalMap("foo"); JsonObject json1 = new JsonObject().put("foo1", "val1"); JsonObject json2 = new JsonObject().put("foo2", "val1"); JsonObject json3 = new JsonObject().put("foo3", "val1"); map.put("key1", json1); map.put("key2", json2); map.put("key3", json3); assertEquals(3, map.size()); Collection<JsonObject> values = map.values(); assertEquals(3, values.size()); assertTrue(values.contains(json1)); assertTrue(values.contains(json2)); assertTrue(values.contains(json3)); // copied assertFalse(containsExact(values, json1)); assertFalse(containsExact(values, json2)); assertFalse(containsExact(values, json3)); }
@Test public void testValues() { LocalMap<String, String> map = sharedData.getLocalMap("foo"); map.put("foo1", "val1"); map.put("foo2", "val2"); map.put("foo3", "val3"); assertEquals(3, map.size()); Collection<String> values = map.values(); assertEquals(3, values.size()); assertTrue(values.contains("val1")); assertTrue(values.contains("val2")); assertTrue(values.contains("val3")); }