if (event.type() == VALUE) {
@Test public void testObjectHandlerScope() { JsonParser parser = JsonParser.newParser(); List<JsonObject> objects = new ArrayList<>(); AtomicInteger ends = new AtomicInteger(); AtomicBoolean obj = new AtomicBoolean(); parser.handler(event -> { switch (event.type()) { case START_OBJECT: parser.objectValueMode(); break; case VALUE: if (obj.get()) { objects.add((JsonObject) event.value()); } break; case END_OBJECT: ends.incrementAndGet(); obj.set(true); break; } }); parser.handle(Buffer.buffer("[" + "{\"one\":1}," + "{\"two\":2}," + "{\"three\":3}" + "]")); assertEquals(1, ends.get()); assertEquals(Arrays.asList(new JsonObject().put("two", 2), new JsonObject().put("three", 3)), objects); }
@Test public void testParseConcatedJSONStream() { JsonParser parser = JsonParser.newParser(); AtomicInteger startCount = new AtomicInteger(); AtomicInteger endCount = new AtomicInteger(); parser.handler(event -> { switch (event.type()) { case START_OBJECT: startCount.incrementAndGet(); break; case END_OBJECT: endCount.incrementAndGet(); break; default: fail(); break; } }); parser.handle(Buffer.buffer("{}{}")); assertEquals(2, startCount.get()); assertEquals(2, endCount.get()); }
@Test public void testParseObjectValue() { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.objectValueMode(); JsonObject expected = new JsonObject() .put("number", 3) .put("floating", 3.5d) .put("true", true) .put("false", false) .put("string", "s") .put("object", new JsonObject().put("foo", "bar")) .put("array", new JsonArray().add(0).add(1).add(2)) .putNull("null") .put("bytes", new byte[]{1, 2, 3}); parser.handler(event -> { assertEquals(0, status.getAndIncrement()); assertEquals(JsonEventType.VALUE, event.type()); assertEquals(expected, event.value()); }); parser.handle(expected.toBuffer()); assertEquals(1, status.get()); }
switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_ARRAY, event.type()); break; case 1: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject().put("one", 1), event.value()); break; case 2: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject().put("two", 2), event.value()); break; case 3: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject().put("three", 3), event.value()); break; case 4: assertEquals(JsonEventType.END_ARRAY, event.type()); break;
@Test public void testParseEmptyArray() { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.handler(event -> { assertNull(event.fieldName()); assertNull(event.value()); switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_ARRAY, event.type()); break; case 1: assertEquals(JsonEventType.END_ARRAY, event.type()); break; default: fail(); } }); parser.handle(Buffer.buffer("[]")); assertEquals(2, status.get()); }
private void testValue(String jsonValue, Handler<JsonEvent> checker) { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.handler(event -> { switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_OBJECT, event.type()); assertNull(event.fieldName()); assertNull(event.value()); break; case 1: assertEquals(JsonEventType.VALUE, event.type()); checker.handle(event); assertEquals("foo", event.fieldName()); break; case 2: assertEquals(JsonEventType.END_OBJECT, event.type()); assertNull(event.fieldName()); assertNull(event.value()); break; } }); parser.handle(Buffer.buffer("{\"foo\":" + jsonValue + "}")); assertEquals(3, status.get()); }
switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_OBJECT, event.type()); parser.objectValueMode(); break; case 1: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject(), event.value()); assertEquals("bar", event.fieldName()); assertTrue(event.isObject()); assertEquals(JsonEventType.VALUE, event.type()); assertEquals(new JsonObject(), event.value()); break; case 3: assertEquals(JsonEventType.END_OBJECT, event.type()); break; default:
@Test public void testParseConcatedJSONStream() { JsonParser parser = JsonParser.newParser(); AtomicInteger startCount = new AtomicInteger(); AtomicInteger endCount = new AtomicInteger(); parser.handler(event -> { switch (event.type()) { case START_OBJECT: startCount.incrementAndGet(); break; case END_OBJECT: endCount.incrementAndGet(); break; default: fail(); break; } }); parser.handle(Buffer.buffer("{}{}")); assertEquals(2, startCount.get()); assertEquals(2, endCount.get()); }
@Test public void testObjectHandlerScope() { JsonParser parser = JsonParser.newParser(); List<JsonObject> objects = new ArrayList<>(); AtomicInteger ends = new AtomicInteger(); AtomicBoolean obj = new AtomicBoolean(); parser.handler(event -> { switch (event.type()) { case START_OBJECT: parser.objectValueMode(); break; case VALUE: if (obj.get()) { objects.add((JsonObject) event.value()); } break; case END_OBJECT: ends.incrementAndGet(); obj.set(true); break; } }); parser.handle(Buffer.buffer("[" + "{\"one\":1}," + "{\"two\":2}," + "{\"three\":3}" + "]")); assertEquals(1, ends.get()); assertEquals(Arrays.asList(new JsonObject().put("two", 2), new JsonObject().put("three", 3)), objects); }
@Test public void testParseObjectValue() { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.objectValueMode(); JsonObject expected = new JsonObject() .put("number", 3) .put("floating", 3.5d) .put("true", true) .put("false", false) .put("string", "s") .put("object", new JsonObject().put("foo", "bar")) .put("array", new JsonArray().add(0).add(1).add(2)) .putNull("null") .put("bytes", new byte[]{1, 2, 3}); parser.handler(event -> { assertEquals(0, status.getAndIncrement()); assertEquals(JsonEventType.VALUE, event.type()); assertEquals(expected, event.value()); }); parser.handle(expected.toBuffer()); assertEquals(1, status.get()); }
/** * @return the type of the event */ public JsonEventType type() { JsonEventType ret = delegate.type(); return ret; }
@Test public void testParseEmptyArray() { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.handler(event -> { assertNull(event.fieldName()); assertNull(event.value()); switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_ARRAY, event.type()); break; case 1: assertEquals(JsonEventType.END_ARRAY, event.type()); break; default: fail(); } }); parser.handle(Buffer.buffer("[]")); assertEquals(2, status.get()); }
switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_ARRAY, event.type()); break; case 1: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject().put("one", 1), event.value()); break; case 2: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject().put("two", 2), event.value()); break; case 3: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject().put("three", 3), event.value()); break; case 4: assertEquals(JsonEventType.END_ARRAY, event.type()); break;
private void testValue(String jsonValue, Handler<JsonEvent> checker) { JsonParser parser = JsonParser.newParser(); AtomicInteger status = new AtomicInteger(); parser.handler(event -> { switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_OBJECT, event.type()); assertNull(event.fieldName()); assertNull(event.value()); break; case 1: assertEquals(JsonEventType.VALUE, event.type()); checker.handle(event); assertEquals("foo", event.fieldName()); break; case 2: assertEquals(JsonEventType.END_OBJECT, event.type()); assertNull(event.fieldName()); assertNull(event.value()); break; } }); parser.handle(Buffer.buffer("{\"foo\":" + jsonValue + "}")); assertEquals(3, status.get()); }
switch (status.getAndIncrement()) { case 0: assertEquals(JsonEventType.START_OBJECT, event.type()); parser.objectValueMode(); break; case 1: assertEquals(JsonEventType.VALUE, event.type()); assertTrue(event.isObject()); assertEquals(new JsonObject(), event.value()); assertEquals("bar", event.fieldName()); assertTrue(event.isObject()); assertEquals(JsonEventType.VALUE, event.type()); assertEquals(new JsonObject(), event.value()); break; case 3: assertEquals(JsonEventType.END_OBJECT, event.type()); break; default: