diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2022-07-26 12:28:46 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2022-07-26 12:54:23 +0200 |
commit | 6ea01f14b279add8e8c0bec037de3a30ff5f6621 (patch) | |
tree | 1b59a501627fcdb246386245b6c890f8b4381ad8 | |
parent | 84efcc84ca8123f166ac169c201a8f03b13aead0 (diff) |
Add test to deserialize unsigned int
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | tests/unsigned_int.rs | 48 |
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); +} |