summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2023-09-28 08:30:15 +0200
committerMatthias Beyer <mail@beyermatthias.de>2023-09-28 08:30:16 +0200
commitf934f5dd4557ad0ead3d83734b4090be624d738e (patch)
tree731c9715ed9bd08dab9d41ac675f0e7d29fdd2fa
parentf57eadd6ddf6916098303f9ae8f6168fe315909d (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.rs22
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
+}