diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2023-09-28 08:30:15 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2023-09-28 08:30:16 +0200 |
commit | f934f5dd4557ad0ead3d83734b4090be624d738e (patch) | |
tree | 731c9715ed9bd08dab9d41ac675f0e7d29fdd2fa | |
parent | f57eadd6ddf6916098303f9ae8f6168fe315909d (diff) |
Add test for empty inner objectadd-test-empty-inner-obj
Adds a test for an empty inner object as reported in #461.
Reported-by: Zhenchi <zhongzc_arch@outlook.com>
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | tests/empty.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/empty.rs b/tests/empty.rs index bce4f92..7882edf 100644 --- a/tests/empty.rs +++ b/tests/empty.rs @@ -18,3 +18,25 @@ fn empty_deserializes() { assert_eq!(s.foo, 0); assert_eq!(s.bar, 0); } + +#[derive(Debug, Serialize, Deserialize, PartialEq)] +struct A { + b: Option<B>, +} +#[derive(Debug, Serialize, Deserialize, PartialEq)] +struct B {} + +#[test] +fn empty_inner_obj() { + let a = A { + b: Some(B {}) + }; + + let de_from_default_object: A = Config::builder() + .add_source(Config::try_from(&a).unwrap()) + .build() + .unwrap() + .try_deserialize() + .unwrap(); + assert_eq!(a, de_from_default_object); // Failed +} |