private static JsonObject getTree(KeyValueList list, int prefix, String delimiter) { JsonObject tree = new JsonObject(); for (KeyValue keyValue : list.getList()) { if (keyValue.getKey().endsWith(delimiter)) { continue; } JsonObject json = tree; String[] arr = keyValue.getKey().substring(prefix).split(delimiter); for (int i = 0; i < arr.length; i++) { String key = arr[i]; if (i == arr.length - 1) { json.put(key, keyValue.getValue()); } else { JsonObject next = json.getJsonObject(key); if (next == null) { next = new JsonObject(); json.put(key, next); } json = next; } } } return tree; }
public static void toJson(KeyValue obj, java.util.Map<String, Object> json) { json.put("createIndex", obj.getCreateIndex()); json.put("flags", obj.getFlags()); if (obj.getKey() != null) { json.put("key", obj.getKey()); } json.put("lockIndex", obj.getLockIndex()); json.put("modifyIndex", obj.getModifyIndex()); if (obj.getSession() != null) { json.put("session", obj.getSession()); } if (obj.getValue() != null) { json.put("value", obj.getValue()); } } }
private List<String> getKeys(TxnResponse resp) { return resp.getResults().stream() .map(kv -> ((KeyValue) kv).getKey()).collect(Collectors.toList()); }
private void getEntries(TestContext tc, String prefix, Handler<List<String>> resultHandler) { ctx.readClient().getValues(prefix, tc.asyncAssertSuccess(list -> { resultHandler.handle(list.getList().stream() .map(kv -> kv.getKey() + "/" + kv.getValue()).collect(Collectors.toList())); })); }
private void valuesAccess(TestContext tc, ConsulClient accessClient) { String key1 = randomFooBarAlpha(); String value1 = randomAlphaString(10); String key2 = randomFooBarAlpha(); String value2 = randomAlphaString(10); ctx.writeClient().putValue(key1, value1, tc.asyncAssertSuccess(b1 -> { tc.assertTrue(b1); ctx.writeClient().putValue(key2, value2, tc.asyncAssertSuccess(b2 -> { tc.assertTrue(b2); accessClient.getValues("foo/bar", tc.asyncAssertSuccess(kvList -> { List<KeyValue> list = kvList.getList(); tc.assertEquals(list.size(), 2); tc.assertTrue(list.stream() .filter(kv -> kv.getKey().equals(key1) && kv.getValue().equals(value1)) .count() == 1); tc.assertTrue(list.stream() .filter(kv -> kv.getKey().equals(key2) && kv.getValue().equals(value2)) .count() == 1); ctx.writeClient().deleteValues("foo/bar", tc.asyncAssertSuccess()); })); })); })); }
private void checkKeyValue(KeyValue expected, KeyValue actual) { assertEquals(expected, actual); assertEquals(expected.hashCode(), actual.hashCode()); assertEquals(expected.getKey(), actual.getKey()); assertEquals(expected.getValue(), actual.getValue()); assertEquals(expected.getSession(), actual.getSession()); assertEquals(expected.getCreateIndex(), actual.getCreateIndex()); assertEquals(expected.getFlags(), actual.getFlags()); assertEquals(expected.getModifyIndex(), actual.getModifyIndex()); assertEquals(expected.getLockIndex(), actual.getLockIndex()); }
@Test public void readClientEmptyValue(TestContext tc) { String key = randomFooBarAlpha(); ctx.writeClient() .putValue(key, "", tc.asyncAssertSuccess(b -> { tc.assertTrue(b); ctx.readClient().getValue(key, tc.asyncAssertSuccess(pair -> { tc.assertEquals(key, pair.getKey()); tc.assertEquals("", pair.getValue()); ctx.writeClient().deleteValue(key, tc.asyncAssertSuccess()); })); })); }
@Test public void readClientCanReadOneValue(TestContext tc) { String key = randomFooBarUnicode(); String value = randomUnicodeString(10); ctx.writeClient() .putValue(key, value, tc.asyncAssertSuccess(b -> { tc.assertTrue(b); ctx.readClient().getValue(key, tc.asyncAssertSuccess(pair -> { tc.assertEquals(key, pair.getKey()); tc.assertEquals(value, pair.getValue()); ctx.writeClient().deleteValue(key, tc.asyncAssertSuccess()); })); })); }
@Test public void canSetAllFlags(TestContext tc) { String key = randomFooBarAlpha(); String value = randomAlphaString(10); KeyValueOptions opts = new KeyValueOptions().setFlags(-1); ctx.writeClient() .putValueWithOptions(key, value, opts, tc.asyncAssertSuccess(b -> { tc.assertTrue(b); ctx.readClient().getValue(key, tc.asyncAssertSuccess(pair -> { tc.assertEquals(key, pair.getKey()); tc.assertEquals(value, pair.getValue()); assertEquals(opts.getFlags(), pair.getFlags()); ctx.writeClient().deleteValue(key, tc.asyncAssertSuccess()); })); })); }
@Test public void writeClientHaveFullAccessToOneValue(TestContext tc) { String key = randomFooBarAlpha(); String value = randomAlphaString(10); KeyValueOptions opts = new KeyValueOptions().setFlags(randomLong()); ctx.writeClient() .putValueWithOptions(key, value, opts, tc.asyncAssertSuccess(b -> { tc.assertTrue(b); ctx.readClient().getValue(key, tc.asyncAssertSuccess(pair -> { tc.assertEquals(key, pair.getKey()); tc.assertEquals(value, pair.getValue()); assertEquals(opts.getFlags(), pair.getFlags()); ctx.writeClient().deleteValue(key, tc.asyncAssertSuccess()); })); })); }