#[cfg(test)]
mod tests {
use mdmodels_macro::parse_mdmodel;
parse_mdmodel!("tests/data/model.md");
#[test]
fn test_model_builder() {
ObjectBuilder::default()
.string_value("Hello, World!")
.integer_value(42)
.float_value(3.2)
.boolean_value(true)
.multiple_values(vec![1.12, 1.0])
.nested_object(NestedBuilder::default().value("nested").build().unwrap())
.multiple_nested_objects(vec![
NestedBuilder::default().value("nested1").build().unwrap(),
NestedBuilder::default().value("nested2").build().unwrap(),
])
.enum_value(SomeEnum::Value)
.build()
.expect("Failed to build object");
}
#[test]
fn test_model_non_builder() {
Object {
additional_properties: None,
string_value: Some("Hello, World!".to_string()),
integer_value: Some(42),
float_value: Some(3.2),
boolean_value: Some(true),
multiple_values: Some(vec![1.12, 1.0]),
nested_object: Some(Nested {
additional_properties: None,
value: Some("nested".to_string()),
}),
multiple_nested_objects: vec![
Nested {
additional_properties: None,
value: Some("nested1".to_string()),
},
Nested {
additional_properties: None,
value: Some("nested2".to_string()),
},
],
enum_value: Some(SomeEnum::Value),
};
}
#[test]
fn test_model_parser() {
let json = r#"
{
"string_value": "Hello, World!",
"integer_value": 42,
"float_value": 3.2,
"boolean_value": true,
"multiple_values": [1.12, 1.0],
"nested_object": {
"value": "nested"
},
"multiple_nested_objects": [
{
"value": "nested1"
},
{
"value": "nested2"
}
],
"enum_value": "value"
}
"#;
let object: Object = serde_json::from_str(json).expect("Failed to parse JSON");
assert_eq!(object.string_value, Some("Hello, World!".to_string()));
assert_eq!(object.integer_value, Some(42));
assert_eq!(object.float_value, Some(3.2));
assert_eq!(object.boolean_value, Some(true));
assert_eq!(object.multiple_values, Some(vec![1.12, 1.0]));
assert_eq!(
object.nested_object.unwrap().value,
Some("nested".to_string())
);
assert_eq!(object.multiple_nested_objects.len(), 2);
assert_eq!(
object.multiple_nested_objects[0].value,
Some("nested1".to_string())
);
assert_eq!(
object.multiple_nested_objects[1].value,
Some("nested2".to_string())
);
assert_eq!(object.enum_value.unwrap(), SomeEnum::Value);
}
}