@Test public void testToObject() { assertEquals(null, toObject(null)); assertEquals(JsonProperties.NULL_VALUE, toObject(NullNode.getInstance())); assertEquals(true, toObject(BooleanNode.TRUE)); assertEquals(1, toObject(IntNode.valueOf(1))); assertEquals(2L, toObject(IntNode.valueOf(2), Schema.create(Schema.Type.LONG))); assertEquals(1.0f, toObject(DoubleNode.valueOf(1.0), Schema.create(Schema.Type.FLOAT))); assertEquals(2.0, toObject(DoubleNode.valueOf(2.0))); assertEquals(TextNode.valueOf("\u0001\u0002"), toJsonNode(new byte[]{1, 2})); assertArrayEquals(new byte[]{1, 2}, (byte[]) toObject(TextNode.valueOf("\u0001\u0002"), Schema.create(Schema.Type.BYTES))); assertEquals("a", toObject(TextNode.valueOf("a"))); assertEquals("UP", toObject(TextNode.valueOf("UP"), SchemaBuilder.enumeration("Direction").symbols("UP", "DOWN"))); ArrayNode an = JsonNodeFactory.instance.arrayNode(); an.add(1); assertEquals(Collections.singletonList(1), toObject(an)); ObjectNode on = JsonNodeFactory.instance.objectNode(); on.put("a", 1); assertEquals(Collections.singletonMap("a", 1), toObject(on)); assertEquals(Collections.singletonMap("a", 1L), toObject(on, SchemaBuilder.record("r").fields().requiredLong("a").endRecord())); assertEquals(JsonProperties.NULL_VALUE, toObject(NullNode.getInstance(), SchemaBuilder.unionOf().nullType().and().intType().endUnion())); assertEquals("a", toObject(TextNode.valueOf("a"), SchemaBuilder.unionOf().stringType().and().intType().endUnion())); }
@Test public void testBasicKeyMinimization() { Schema schema = SchemaBuilder.record("TestRecord").fields() .requiredLong("created_at") .requiredString("color") .optionalInt("number")
.requiredString("aString") .requiredInt("anInt") .requiredLong("aLong") .requiredDouble("aDouble") .requiredString("bytes")
.requiredString("message") .requiredBoolean("bool") .requiredLong("timestamp") .requiredInt("number") .requiredDouble("double")
@Before public void setUp() throws IOException, URISyntaxException { this.conf = (distributed ? MiniDFSTest.getConfiguration() : new Configuration()); this.testDescriptor = new DatasetDescriptor.Builder() .format(Formats.AVRO) .schema(SchemaBuilder.record("Event").fields() .requiredLong("timestamp") .requiredString("message") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .year("timestamp") .month("timestamp") .day("timestamp") .build()) .build(); // something completely different this.anotherDescriptor = new DatasetDescriptor.Builder() .format(Formats.PARQUET) .schema(SchemaBuilder.record("Record").fields() .requiredBytes("some_field") .requiredString("another_field") .endRecord()) .partitionStrategy(new PartitionStrategy.Builder() .hash("some_field", 20000) .build()) .build(); this.provider = newProvider(conf); }
@Test public void testReplaceProvidedPartition() { Schema event = SchemaBuilder.record("Event").fields() .requiredLong("created_at") .requiredLong("version") .name("properties").type().optional().map().values().stringType() .endRecord();
@Test public void testAllAvroTypes() { Schema r = SchemaBuilder.record("r").fields() .requiredBoolean("boolF") .requiredInt("intF") .requiredLong("longF") .requiredFloat("floatF") .requiredDouble("doubleF") .requiredString("stringF") .requiredBytes("bytesF") .name("fixedF1").type().fixed("F1").size(1).noDefault() .name("enumF").type().enumeration("E1").symbols("S").noDefault() .name("mapF").type().map().values().stringType().noDefault() .name("arrayF").type().array().items().stringType().noDefault() .name("recordF").type().record("inner").fields() .name("f").type().intType().noDefault() .endRecord().noDefault() .optionalBoolean("boolO") .endRecord(); assertTrue(SchemaValidationUtil.canRead(r, r)); } }
@Test public void testWriteWithOldSchema() throws IOException { Schema writerSchema = SchemaBuilder.record("Message").fields() .requiredLong("id") .requiredString("message") .endRecord(); fsWriter = newWriter(testDirectory, TEST_SCHEMA, writerSchema); init(fsWriter); for (long i = 0; i < 1000; i += 1) { GenericRecordBuilder recordBuilder = new GenericRecordBuilder(TEST_SCHEMA) .set("id", i).set("message","test-"+ i); fsWriter.write(recordBuilder.build()); } fsWriter.close(); final FileStatus[] stats = fs.listStatus(testDirectory, PathFilters.notHidden()); Assert.assertEquals("Should match with writer schema", writerSchema, FileSystemUtil.schema("record", fs, stats[0].getPath())); }
.optionalInt("oint") .nullableInt("nint", 1) .requiredLong("rlong") .optionalLong("olong") .nullableLong("nlong", 2L)
@Test public void testAllTypes() throws SchemaValidationException { Schema s = SchemaBuilder.record("r").fields() .requiredBoolean("boolF") .requiredInt("intF") .requiredLong("longF") .requiredFloat("floatF") .requiredDouble("doubleF") .requiredString("stringF") .requiredBytes("bytesF") .name("fixedF1").type().fixed("F1").size(1).noDefault() .name("enumF").type().enumeration("E1").symbols("S").noDefault() .name("mapF").type().map().values().stringType().noDefault() .name("arrayF").type().array().items().stringType().noDefault() .name("recordF").type().record("inner").fields() .name("f").type().intType().noDefault() .endRecord().noDefault() .optionalBoolean("boolO") .endRecord(); testValidatorPasses(builder.mutualReadStrategy().validateLatest(), s, s); }