Object schemaProperty = ((DataMap) dataProperty).get(SchemaTranslator.SCHEMA_PROPERTY);
assertNotNull(schemaProperty);
assertTrue(schemaProperty instanceof DataMap);
// make sure embedded schema is same as the original schema
SchemaParser schemaParser = TestUtil.schemaParserFromObjects(Arrays.asList(schemaProperty));
DataSchema embeddedSchema = schemaParser.topLevelDataSchemas().get(0);
assertEquals(embeddedSchema, schema.getDereferencedDataSchema());
// look for optional default mode
Object optionalDefaultModeProperty = ((DataMap) dataProperty).get(SchemaTranslator.OPTIONAL_DEFAULT_MODE_PROPERTY);
assertNotNull(optionalDefaultMode);
assertEquals(optionalDefaultModeProperty, optionalDefaultMode.toString());
}
else
{
// embeddedSchema is not enabled or
// for unions and primitives, we never embed the pegasus schema
if (embedSchemaMode == EmbedSchemaMode.NONE && hasEmbeddedSchema(schema))
{
// make sure no embedded schema when
DataMap resultAvroDataMap = TestUtil.dataMapFromString(avroTextFromSchema);
assertFalse(resultAvroDataMap.containsKey(SchemaTranslator.DATA_PROPERTY));
}
assertEquals(avroTextFromSchema, expectedAvroText);
}
String postTranslateSchemaText = schema.toString();
assertEquals(preTranslateSchemaText, postTranslateSchemaText);
// make sure Avro accepts it
Schema avroSchema = Schema.parse(avroTextFromSchema);
if (debug) System.out.println("AvroSchema: " + avroSchema);
SchemaParser parser = new SchemaParser();
ValidationOptions options = new ValidationOptions();
options.setAvroUnionMode(true);
parser.setValidationOptions(options);
parser.parse(avroTextFromSchema);
assertFalse(parser.hasError(), parser.errorMessage());
if (optionalDefaultMode == DataToAvroSchemaTranslationOptions.DEFAULT_OPTIONAL_DEFAULT_MODE)
{
// use other dataToAvroSchemaJson
String avroSchema2Json = SchemaTranslator.dataToAvroSchemaJson(