From f934f5dd4557ad0ead3d83734b4090be624d738e Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 28 Sep 2023 08:30:15 +0200 Subject: [PATCH] Add test for empty inner object Adds a test for an empty inner object as reported in #461. Reported-by: Zhenchi Signed-off-by: Matthias Beyer --- tests/empty.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/empty.rs b/tests/empty.rs index bce4f921..7882edf6 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, +} +#[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 +}