@Test public void testArrayObjectProp() { List<Object> values = new ArrayList<Object>(); values.add(true); values.add(Integer.MAX_VALUE); values.add(Long.MAX_VALUE); values.add(1.0f); values.add(Double.MAX_VALUE); values.add(new byte[] {0x41, 0x42, 0x43}); values.add("abc"); Schema s = SchemaBuilder.builder().intBuilder() .prop("arrayProp", values) .endInt(); //object properties Assert.assertEquals(1, s.getObjectProps().size()); Assert.assertTrue(s.getObjectProp("arrayProp") instanceof Collection); @SuppressWarnings("unchecked") Collection<Object> valueCollection = (Collection<Object>) s.getObjectProp("arrayProp"); Iterator<Object> iter = valueCollection.iterator(); Assert.assertEquals(7, valueCollection.size()); Assert.assertEquals(true, iter.next()); Assert.assertEquals(Integer.MAX_VALUE, iter.next()); Assert.assertEquals(Long.MAX_VALUE, iter.next()); //float converts to double Assert.assertEquals(1.0d, iter.next()); Assert.assertEquals(Double.MAX_VALUE, iter.next()); //byte[] converts to string Assert.assertEquals("ABC", iter.next()); Assert.assertEquals("abc", iter.next()); }
values.put("stringKey", "abc"); Schema s = SchemaBuilder.builder().intBuilder() .prop("mapProp", values) .endInt();
@Test public void testProps() { Schema s = SchemaBuilder.builder().intBuilder() .prop("p1", "v1") .prop("p2", "v2") .prop("p2", "v2real") // overwrite .endInt(); int size = s.getObjectProps().size(); Assert.assertEquals(2, size); Assert.assertEquals("v1", s.getProp("p1")); Assert.assertEquals("v2real", s.getProp("p2")); }
@Override public Schema getSchema() { return SchemaBuilder.builder().intBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, getDatumClass().getCanonicalName()) .endInt(); }
@Override public Schema getSchema() { return SchemaBuilder.builder().intBuilder().prop(SchemaConstants.JAVA_CLASS_FLAG, getDatumClass().getCanonicalName()) .endInt(); }
@Test public void testObjectProps() { Schema s = SchemaBuilder.builder().intBuilder() .prop("booleanProp", true) .prop("intProp", Integer.MAX_VALUE)
@Test(expected = AvroRuntimeException.class) public void testNullObjectProp() { SchemaBuilder.builder().intBuilder() .prop("nullProp", (Object) null) .endInt(); }
@Test public void testInt() { Schema.Type type = Schema.Type.INT; Schema simple = SchemaBuilder.builder().intType(); Schema expected = primitive(type, simple); Schema built1 = SchemaBuilder.builder() .intBuilder().prop("p", "v").endInt(); Assert.assertEquals(expected, built1); }