in avro/src/schema.rs [6314:6356]
fn test_avro_3851_validate_default_value_of_enum() -> TestResult {
let schema_str = r#"
{
"name": "enum1",
"namespace": "ns",
"type": "enum",
"symbols": ["a", "b", "c"],
"default": 100
}
"#;
let expected = Error::EnumDefaultWrongType(100.into()).to_string();
let result = Schema::parse_str(schema_str);
assert!(result.is_err());
let err = result
.map_err(|e| e.to_string())
.err()
.unwrap_or_else(|| "unexpected".to_string());
assert_eq!(expected, err);
let schema_str = r#"
{
"name": "enum1",
"namespace": "ns",
"type": "enum",
"symbols": ["a", "b", "c"],
"default": "d"
}
"#;
let expected = Error::GetEnumDefault {
symbol: "d".to_string(),
symbols: vec!["a".to_string(), "b".to_string(), "c".to_string()],
}
.to_string();
let result = Schema::parse_str(schema_str);
assert!(result.is_err());
let err = result
.map_err(|e| e.to_string())
.err()
.unwrap_or_else(|| "unexpected".to_string());
assert_eq!(expected, err);
Ok(())
}