in avro/src/schema.rs [6359:6467]
fn test_avro_3862_get_aliases() -> TestResult {
// Test for Record
let schema_str = r#"
{
"name": "record1",
"namespace": "ns1",
"type": "record",
"aliases": ["r1", "ns2.r2"],
"fields": [
{ "name": "f1", "type": "int" },
{ "name": "f2", "type": "string" }
]
}
"#;
let schema = Schema::parse_str(schema_str)?;
let expected = vec![Alias::new("ns1.r1")?, Alias::new("ns2.r2")?];
match schema.aliases() {
Some(aliases) => assert_eq!(aliases, &expected),
None => panic!("Expected Some({:?}), got None", expected),
}
let schema_str = r#"
{
"name": "record1",
"namespace": "ns1",
"type": "record",
"fields": [
{ "name": "f1", "type": "int" },
{ "name": "f2", "type": "string" }
]
}
"#;
let schema = Schema::parse_str(schema_str)?;
match schema.aliases() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
// Test for Enum
let schema_str = r#"
{
"name": "enum1",
"namespace": "ns1",
"type": "enum",
"aliases": ["en1", "ns2.en2"],
"symbols": ["a", "b", "c"]
}
"#;
let schema = Schema::parse_str(schema_str)?;
let expected = vec![Alias::new("ns1.en1")?, Alias::new("ns2.en2")?];
match schema.aliases() {
Some(aliases) => assert_eq!(aliases, &expected),
None => panic!("Expected Some({:?}), got None", expected),
}
let schema_str = r#"
{
"name": "enum1",
"namespace": "ns1",
"type": "enum",
"symbols": ["a", "b", "c"]
}
"#;
let schema = Schema::parse_str(schema_str)?;
match schema.aliases() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
// Test for Fixed
let schema_str = r#"
{
"name": "fixed1",
"namespace": "ns1",
"type": "fixed",
"aliases": ["fx1", "ns2.fx2"],
"size": 10
}
"#;
let schema = Schema::parse_str(schema_str)?;
let expected = vec![Alias::new("ns1.fx1")?, Alias::new("ns2.fx2")?];
match schema.aliases() {
Some(aliases) => assert_eq!(aliases, &expected),
None => panic!("Expected Some({:?}), got None", expected),
}
let schema_str = r#"
{
"name": "fixed1",
"namespace": "ns1",
"type": "fixed",
"size": 10
}
"#;
let schema = Schema::parse_str(schema_str)?;
match schema.aliases() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
// Test for non-named type
let schema = Schema::Int;
match schema.aliases() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
Ok(())
}