summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2022-07-26 12:28:46 +0200
committerMatthias Beyer <mail@beyermatthias.de>2022-07-26 12:54:23 +0200
commit6ea01f14b279add8e8c0bec037de3a30ff5f6621 (patch)
tree1b59a501627fcdb246386245b6c890f8b4381ad8
parent84efcc84ca8123f166ac169c201a8f03b13aead0 (diff)
Add test to deserialize unsigned int
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--tests/unsigned_int.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/unsigned_int.rs b/tests/unsigned_int.rs
new file mode 100644
index 0000000..e870c8a
--- /dev/null
+++ b/tests/unsigned_int.rs
@@ -0,0 +1,48 @@
+#![cfg(feature = "preserve_order")]
+
+extern crate indexmap;
+
+#[derive(serde::Deserialize, Eq, PartialEq, Debug)]
+struct Container<T> {
+ inner: T,
+}
+
+#[derive(serde::Deserialize, Eq, PartialEq, Debug)]
+struct Unsigned {
+ unsigned: u16,
+}
+
+impl Default for Unsigned {
+ fn default() -> Self {
+ Self { unsigned: 128 }
+ }
+}
+
+impl From<Unsigned> for config::ValueKind {
+ fn from(unsigned: Unsigned) -> Self {
+ let mut properties = indexmap::IndexMap::new();
+ properties.insert(
+ "unsigned".to_string(),
+ config::Value::from(unsigned.unsigned),
+ );
+
+ Self::Table(properties)
+ }
+}
+
+#[test]
+fn test_deser_unsigned_int() {
+ let container = Container {
+ inner: Unsigned::default(),
+ };
+
+ let built = config::Config::builder()
+ .set_default("inner", Unsigned::default())
+ .unwrap()
+ .build()
+ .unwrap()
+ .try_deserialize::<Container<Unsigned>>()
+ .unwrap();
+
+ assert_eq!(container, built);
+}