in avro/src/schema_compatibility.rs [1607:1680]
fn test_avro_3898_record_schemas_match_by_unqualified_name() -> TestResult {
let schemas = [
// Record schemas
(
Schema::parse_str(
r#"{
"type": "record",
"name": "Statistics",
"fields": [
{ "name": "success", "type": "int" },
{ "name": "fail", "type": "int" },
{ "name": "time", "type": "string" },
{ "name": "max", "type": "int", "default": 0 }
]
}"#,
)?,
Schema::parse_str(
r#"{
"type": "record",
"name": "Statistics",
"namespace": "my.namespace",
"fields": [
{ "name": "success", "type": "int" },
{ "name": "fail", "type": "int" },
{ "name": "time", "type": "string" },
{ "name": "average", "type": "int", "default": 0}
]
}"#,
)?,
),
// Enum schemas
(
Schema::parse_str(
r#"{
"type": "enum",
"name": "Suit",
"symbols": ["diamonds", "spades", "clubs"]
}"#,
)?,
Schema::parse_str(
r#"{
"type": "enum",
"name": "Suit",
"namespace": "my.namespace",
"symbols": ["diamonds", "spades", "clubs", "hearts"]
}"#,
)?,
),
// Fixed schemas
(
Schema::parse_str(
r#"{
"type": "fixed",
"name": "EmployeeId",
"size": 16
}"#,
)?,
Schema::parse_str(
r#"{
"type": "fixed",
"name": "EmployeeId",
"namespace": "my.namespace",
"size": 16
}"#,
)?,
),
];
for (schema_1, schema_2) in schemas {
assert!(SchemaCompatibility::can_read(&schema_1, &schema_2).is_ok());
}
Ok(())
}