blob: 7430fac8246a0e0bd8072ab82e6fb492f457318c [file] [log] [blame]
use toml::map::Map;
use toml::Value::{Array, Boolean, Float, Integer, String, Table};
macro_rules! map( ($($k:expr => $v:expr),*) => ({
let mut _m = Map::new();
$(_m.insert($k.to_string(), $v);)*
_m
}) );
#[test]
fn simple_show() {
assert_eq!(String("foo".to_string()).to_string(), "\"foo\"");
assert_eq!(Integer(10).to_string(), "10");
assert_eq!(Float(10.0).to_string(), "10.0");
assert_eq!(Float(2.4).to_string(), "2.4");
assert_eq!(Boolean(true).to_string(), "true");
assert_eq!(Array(vec![]).to_string(), "[]");
assert_eq!(Array(vec![Integer(1), Integer(2)]).to_string(), "[1, 2]");
}
#[test]
fn table() {
assert_eq!(map! {}.to_string(), "");
assert_eq!(
map! {
"test" => Integer(2),
"test2" => Integer(3) }
.to_string(),
"test = 2\ntest2 = 3\n"
);
assert_eq!(
map! {
"test" => Integer(2),
"test2" => Table(map! {
"test" => String("wut".to_string())
})
}
.to_string(),
"test = 2\n\
\n\
[test2]\n\
test = \"wut\"\n"
);
assert_eq!(
map! {
"test" => Integer(2),
"test2" => Table(map! {
"test" => String("wut".to_string())
})
}
.to_string(),
"test = 2\n\
\n\
[test2]\n\
test = \"wut\"\n"
);
assert_eq!(
map! {
"test" => Integer(2),
"test2" => Array(vec![Table(map! {
"test" => String("wut".to_string())
})])
}
.to_string(),
"test = 2\n\
\n\
[[test2]]\n\
test = \"wut\"\n"
);
#[cfg(feature = "preserve_order")]
assert_eq!(
map! {
"foo.bar" => Integer(2),
"foo\"bar" => Integer(2)
}
.to_string(),
"\"foo.bar\" = 2\n\
\"foo\\\"bar\" = 2\n"
);
assert_eq!(
map! {
"test" => Integer(2),
"test2" => Array(vec![Table(map! {
"test" => Array(vec![Integer(2)])
})])
}
.to_string(),
"test = 2\n\
\n\
[[test2]]\n\
test = [2]\n"
);
let table = map! {
"test" => Integer(2),
"test2" => Array(vec![Table(map! {
"test" => Array(vec![Array(vec![Integer(2), Integer(3)]),
Array(vec![String("foo".to_string()), String("bar".to_string())])])
})])
};
assert_eq!(
table.to_string(),
"test = 2\n\
\n\
[[test2]]\n\
test = [[2, 3], [\"foo\", \"bar\"]]\n"
);
assert_eq!(
map! {
"test" => Array(vec![Integer(2)]),
"test2" => Integer(2)
}
.to_string(),
"test = [2]\n\
test2 = 2\n"
);
}