From: Sean Middleditch Date: Tue, 12 Jan 2010 09:41:17 +0000 (-0800) Subject: test object property assignment and clear X-Git-Tag: v1.3~21^2~3^2~27 X-Git-Url: http://www.project-moonshot.org/gitweb/?p=jansson.git;a=commitdiff_plain;h=f743c4ee7f199ce2b0efeb99f56c91426e0f5263 test object property assignment and clear --- diff --git a/test.cc b/test.cc index 9b0eb2c..531db58 100644 --- a/test.cc +++ b/test.cc @@ -62,6 +62,12 @@ int main() { ASSERT_TRUE(e3.is_string(), "e3 is not a string after assignment"); ASSERT_EQ(e3.as_string(), "foobar", "e3 has incorrect value after assignment"); + e3 = jansson::Value::object(); + ASSERT_TRUE(e3.is_object(), "e3 is not an object after assignment"); + + e3 = jansson::Value::null(); + ASSERT_TRUE(e3.is_null(), "e3 is not null after assignment"); + e3.set(0, jansson::Value::from("foobar")); ASSERT_TRUE(e3.is_array(), "e3 is not an array after index assignment"); ASSERT_EQ(e3.size(), 1, "e3 has incorrect number of elements after assignment"); @@ -81,5 +87,26 @@ int main() { ASSERT_TRUE(e3.is_array(), "e3 is not an array after index assignment"); ASSERT_EQ(e3.size(), 2, "e3 has incorrect number of elements after assignment"); + e3.clear(); + ASSERT_EQ(e3.size(), 0, "e3 has incorrect number of elements after clear"); + + e3.set("foo", jansson::Value::from("test")); + ASSERT_TRUE(e3.is_object(), "e3 is not an object after property assignment"); + ASSERT_EQ(e3.size(), 1, "e3 has incorrect number of properties after assignment"); + ASSERT_EQ(e3["foo"].as_string(), "test", "e3.foo has incorrect value after assignment"); + + e3.set("foo", jansson::Value::from("again")); + ASSERT_TRUE(e3.is_object(), "e3 is not an object after property assignment"); + ASSERT_EQ(e3.size(), 1, "e3 has incorrect number of properties after assignment"); + ASSERT_EQ(e3["foo"].as_string(), "again", "e3.foo has incorrect value after assignment"); + + e3.set("bar", jansson::Value::from("test")); + ASSERT_TRUE(e3.is_object(), "e3 is not an object after property assignment"); + ASSERT_EQ(e3.size(), 2, "e3 has incorrect number of properties after assignment"); + ASSERT_EQ(e3["bar"].as_string(), "test", "e3.foo has incorrect value after assignment"); + + e3.clear(); + ASSERT_EQ(e3.size(), 0, "e3 has incorrect number of properties after clear"); + return 0; }