@Test public void parseNumberFormatException() { Buffer data = Buffer.buffer(Long.MAX_VALUE + "0"); try { JsonParser.newParser().handler(val -> {}).write(data).end(); fail(); } catch (DecodeException expected) { } List<Throwable> errors = new ArrayList<>(); JsonParser.newParser().exceptionHandler(errors::add).handler(val -> {}).write(data).end(); assertEquals(1, errors.size()); }
@Test public void testArrayMappingError() { List<Object> values = new ArrayList<>(); List<Throwable> errors = new ArrayList<>(); JsonParser.newParser().arrayValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).exceptionHandler(errors::add).write(Buffer.buffer("[]")).end(); assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); try { JsonParser.newParser().arrayValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).write(Buffer.buffer("[]")).end(); fail(); } catch (DecodeException expected) { } assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); }
@Test public void testObjectMappingError() { List<Object> values = new ArrayList<>(); List<Throwable> errors = new ArrayList<>(); JsonParser.newParser().objectValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).exceptionHandler(errors::add).write(Buffer.buffer("{\"destination\":\"unknown\"}")).end(); assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); try { JsonParser.newParser().objectValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).write(Buffer.buffer("{\"destination\":\"unknown\"}")).end(); fail(); } catch (DecodeException expected) { } assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); }
@Test public void parseNumberFormatException() { Buffer data = Buffer.buffer(Long.MAX_VALUE + "0"); try { JsonParser.newParser().handler(val -> {}).write(data).end(); fail(); } catch (DecodeException expected) { } List<Throwable> errors = new ArrayList<>(); JsonParser.newParser().exceptionHandler(errors::add).handler(val -> {}).write(data).end(); assertEquals(1, errors.size()); }
@Test public void testObjectMappingError() { List<Object> values = new ArrayList<>(); List<Throwable> errors = new ArrayList<>(); JsonParser.newParser().objectValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).exceptionHandler(errors::add).write(Buffer.buffer("{\"destination\":\"unknown\"}")).end(); assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); try { JsonParser.newParser().objectValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).write(Buffer.buffer("{\"destination\":\"unknown\"}")).end(); fail(); } catch (DecodeException expected) { } assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); }
@Test public void testArrayMappingError() { List<Object> values = new ArrayList<>(); List<Throwable> errors = new ArrayList<>(); JsonParser.newParser().arrayValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).exceptionHandler(errors::add).write(Buffer.buffer("[]")).end(); assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); try { JsonParser.newParser().arrayValueMode().handler(event -> values.add(event.mapTo(TheObject.class))).write(Buffer.buffer("[]")).end(); fail(); } catch (DecodeException expected) { } assertEquals(Collections.emptyList(), values); assertEquals(1, errors.size()); }
@Override public WriteStream<Buffer> write(Buffer data) { parser.write(data); return this; }
/** * Handle a <code>Buffer</code>, pretty much like calling {@link io.vertx.core.Handler}. * @param buffer * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.core.parsetools.JsonParser write(io.vertx.rxjava.core.buffer.Buffer buffer) { delegate.write(buffer.getDelegate()); return this; }
/** * Handle a <code>Buffer</code>, pretty much like calling {@link io.vertx.core.Handler}. * @param buffer * @return a reference to this, so the API can be used fluently */ public io.vertx.rxjava.core.parsetools.JsonParser write(io.vertx.rxjava.core.buffer.Buffer buffer) { delegate.write(buffer.getDelegate()); return this; }