From a2b5fbab1974184651c8c4c90cf071b495ad8dd8 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Thu, 10 Mar 2022 14:47:37 +0100 Subject: [PATCH] Test MemberProxy and ElementProxy --- extras/tests/JsonVariant/link.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/extras/tests/JsonVariant/link.cpp b/extras/tests/JsonVariant/link.cpp index 3a45ff6d..6c6ebdb3 100644 --- a/extras/tests/JsonVariant/link.cpp +++ b/extras/tests/JsonVariant/link.cpp @@ -22,4 +22,32 @@ TEST_CASE("JsonVariant::link()") { CHECK(variant.as() == "{\"hello\":\"WORLD!\"}"); } + + SECTION("JsonVariant::link(MemberProxy)") { + doc2["obj"]["hello"] = "world"; + + variant.link(doc2["obj"]); + + CHECK(variant.as() == "{\"hello\":\"world\"}"); + CHECK(variant.memoryUsage() == 0); + + // altering the linked document should change the result + doc2["obj"]["hello"] = "WORLD!"; + + CHECK(variant.as() == "{\"hello\":\"WORLD!\"}"); + } + + SECTION("JsonVariant::link(ElementProxy)") { + doc2[0]["hello"] = "world"; + + variant.link(doc2[0]); + + CHECK(variant.as() == "{\"hello\":\"world\"}"); + CHECK(variant.memoryUsage() == 0); + + // altering the linked document should change the result + doc2[0]["hello"] = "WORLD!"; + + CHECK(variant.as() == "{\"hello\":\"WORLD!\"}"); + } }