in avro/src/schema.rs [6470:6572]
fn test_avro_3862_get_doc() -> TestResult {
// Test for Record
let schema_str = r#"
{
"name": "record1",
"type": "record",
"doc": "Record Document",
"fields": [
{ "name": "f1", "type": "int" },
{ "name": "f2", "type": "string" }
]
}
"#;
let schema = Schema::parse_str(schema_str)?;
let expected = "Record Document";
match schema.doc() {
Some(doc) => assert_eq!(doc, expected),
None => panic!("Expected Some({:?}), got None", expected),
}
let schema_str = r#"
{
"name": "record1",
"type": "record",
"fields": [
{ "name": "f1", "type": "int" },
{ "name": "f2", "type": "string" }
]
}
"#;
let schema = Schema::parse_str(schema_str)?;
match schema.doc() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
// Test for Enum
let schema_str = r#"
{
"name": "enum1",
"type": "enum",
"doc": "Enum Document",
"symbols": ["a", "b", "c"]
}
"#;
let schema = Schema::parse_str(schema_str)?;
let expected = "Enum Document";
match schema.doc() {
Some(doc) => assert_eq!(doc, expected),
None => panic!("Expected Some({:?}), got None", expected),
}
let schema_str = r#"
{
"name": "enum1",
"type": "enum",
"symbols": ["a", "b", "c"]
}
"#;
let schema = Schema::parse_str(schema_str)?;
match schema.doc() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
// Test for Fixed
let schema_str = r#"
{
"name": "fixed1",
"type": "fixed",
"doc": "Fixed Document",
"size": 10
}
"#;
let schema = Schema::parse_str(schema_str)?;
let expected = "Fixed Document";
match schema.doc() {
Some(doc) => assert_eq!(doc, expected),
None => panic!("Expected Some({:?}), got None", expected),
}
let schema_str = r#"
{
"name": "fixed1",
"type": "fixed",
"size": 10
}
"#;
let schema = Schema::parse_str(schema_str)?;
match schema.doc() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
// Test for non-named type
let schema = Schema::Int;
match schema.doc() {
None => (),
some => panic!("Expected None, got {some:?}"),
}
Ok(())
}