aboutsummaryrefslogtreecommitdiff
path: root/tests/datetime.rs
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2017-02-08 21:23:29 -0800
committerGitHub <noreply@github.com>2017-02-08 21:23:29 -0800
commitbeff7f992d738db3565d899a72542baae57f835d (patch)
tree76498b837fc5f1f6ba0a5f53e1b2d85c6638da4d /tests/datetime.rs
parent473908c9722eeedeec1777237a135f582faa78d8 (diff)
parentf66d8bcf33530c858a502bfa170f2383a8cbc204 (diff)
downloadmilf-rs-beff7f992d738db3565d899a72542baae57f835d.tar.gz
milf-rs-beff7f992d738db3565d899a72542baae57f835d.zip
Merge pull request #137 from alexcrichton/serde-upgrade
Rewrite crate with serde support from ground up
Diffstat (limited to 'tests/datetime.rs')
-rw-r--r--tests/datetime.rs58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/datetime.rs b/tests/datetime.rs
new file mode 100644
index 0000000..948e863
--- /dev/null
+++ b/tests/datetime.rs
@@ -0,0 +1,58 @@
+extern crate toml;
+
+use std::str::FromStr;
+
+use toml::Value;
+
+#[test]
+fn times() {
+ fn good(s: &str) {
+ let to_parse = format!("foo = {}", s);
+ let value = Value::from_str(&to_parse).unwrap();
+ assert_eq!(value["foo"].as_datetime().unwrap().to_string(), s);
+ }
+
+ good("1997-09-09T09:09:09Z");
+ good("1997-09-09T09:09:09+09:09");
+ good("1997-09-09T09:09:09-09:09");
+ good("1997-09-09T09:09:09");
+ good("1997-09-09");
+ good("09:09:09");
+ good("1997-09-09T09:09:09.09Z");
+ good("1997-09-09T09:09:09.09+09:09");
+ good("1997-09-09T09:09:09.09-09:09");
+ good("1997-09-09T09:09:09.09");
+ good("09:09:09.09");
+}
+
+#[test]
+fn bad_times() {
+ fn bad(s: &str) {
+ let to_parse = format!("foo = {}", s);
+ assert!(Value::from_str(&to_parse).is_err());
+ }
+
+ bad("199-09-09");
+ bad("199709-09");
+ bad("1997-9-09");
+ bad("1997-09-9");
+ bad("1997-09-0909:09:09");
+ bad("1997-09-09T09:09:09.");
+ bad("T");
+ bad("T.");
+ bad("TZ");
+ bad("1997-09-09T09:09:09.09+");
+ bad("1997-09-09T09:09:09.09+09");
+ bad("1997-09-09T09:09:09.09+09:9");
+ bad("1997-09-09T09:09:09.09+0909");
+ bad("1997-09-09T09:09:09.09-");
+ bad("1997-09-09T09:09:09.09-09");
+ bad("1997-09-09T09:09:09.09-09:9");
+ bad("1997-09-09T09:09:09.09-0909");
+
+ bad("1997-00-09T09:09:09.09Z");
+ bad("1997-09-00T09:09:09.09Z");
+ bad("1997-09-09T30:09:09.09Z");
+ bad("1997-09-09T12:69:09.09Z");
+ bad("1997-09-09T12:09:69.09Z");
+}