package io.vertx.spi.cluster.zookeeper; import io.vertx.spi.cluster.zookeeper.impl.ZKSyncMap; import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.test.TestingServer; import org.apache.curator.test.Timing; import org.junit.Test; import static org.junit.Assert.*; /** * */ public class ZKSyncMapTest { @Test public void syncMapOperation() throws Exception { Timing timing = new Timing(); TestingServer server = new TestingServer(); RetryPolicy retryPolicy = new ExponentialBackoffRetry(100, 3); CuratorFramework curator = CuratorFrameworkFactory.builder() .namespace("io.vertx") .sessionTimeoutMs(timing.session()) .connectionTimeoutMs(timing.connection()) .connectString(server.getConnectString()) .retryPolicy(retryPolicy) .build(); curator.start(); String k = "myKey"; String v = "myValue"; ZKSyncMap<String, String> syncMap = new ZKSyncMap<>(curator, "mapTest"); syncMap.put(k, v); assertFalse(syncMap.isEmpty()); assertEquals(syncMap.get(k), v); assertTrue(syncMap.size() > 0); assertTrue(syncMap.containsKey(k)); assertTrue(syncMap.containsValue(v)); assertTrue(syncMap.keySet().contains(k)); assertTrue(syncMap.values().contains(v)); syncMap.entrySet().forEach(entry -> { assertEquals(k, entry.getKey()); assertEquals(v, entry.getValue()); }); String value = syncMap.remove(k); assertEquals(value, v); assertNull(syncMap.get(k)); syncMap.clear(); assertTrue(syncMap.isEmpty()); } }