summaryrefslogtreecommitdiffstats
path: root/tests/get.rs
diff options
context:
space:
mode:
authorEugeen Sablin <EugeenSablin@gmail.com>2018-11-10 19:23:16 +0300
committerEugeen Sablin <EugeenSablin@gmail.com>2018-11-10 19:23:16 +0300
commit2cb768bddc715c32e740a067652e7200c8d344f3 (patch)
tree1ca5ccc3a5794def758a765da835fe9b8b73b1a4 /tests/get.rs
parent802f947fa2b5060b605aa39c0c7c201ede9a5ed8 (diff)
support reading enums from config
Diffstat (limited to 'tests/get.rs')
-rw-r--r--tests/get.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/get.rs b/tests/get.rs
index 73eeeaf..7e3be8a 100644
--- a/tests/get.rs
+++ b/tests/get.rs
@@ -202,3 +202,26 @@ fn test_struct_array() {
assert_eq!(s.elements.len(), 10);
assert_eq!(s.elements[3], "4".to_string());
}
+
+#[test]
+fn test_enum() {
+ #[derive(Debug, Deserialize, PartialEq)]
+ enum Diode {
+ Off,
+ Brightness(i32),
+ Blinking(i32, i32),
+ Pattern { name: String, inifinite: bool },
+ }
+ #[derive(Debug, Deserialize)]
+ struct Settings {
+ diodes: HashMap<String, Diode>,
+ }
+
+ let c = make();
+ let s: Settings = c.try_into().unwrap();
+
+ assert_eq!(s.diodes["green"], Diode::Off);
+ assert_eq!(s.diodes["red"], Diode::Brightness(100));
+ assert_eq!(s.diodes["blue"], Diode::Blinking(300, 700));
+ assert_eq!(s.diodes["white"], Diode::Pattern{name: "christmas".into(), inifinite: true,});
+}