diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-12-29 00:44:34 +0100 |
---|---|---|
committer | Andreas Stöckel <andreas@somweyr.de> | 2014-12-29 00:44:34 +0100 |
commit | 6dd1e1660e8d97ae1c93ff463c58a780c14b08f4 (patch) | |
tree | 9c656e187a1650a7d7b9b221c3478f20c5807183 /test/core | |
parent | 0af66457f7739df4c1b151b2adb7479d87275c9a (diff) |
fixed StructType::cast signature, more unit tests
Diffstat (limited to 'test/core')
-rw-r--r-- | test/core/model/TypesystemTest.cpp | 41 |
1 files changed, 40 insertions, 1 deletions
diff --git a/test/core/model/TypesystemTest.cpp b/test/core/model/TypesystemTest.cpp index fd6e38f..9cbc5bc 100644 --- a/test/core/model/TypesystemTest.cpp +++ b/test/core/model/TypesystemTest.cpp @@ -496,7 +496,7 @@ TEST(StructType, cast) Variant val = structWithParentType->create(); - Variant casted = structType->cast(val, logger); + ASSERT_TRUE(structType->cast(val, logger)); ASSERT_EQ(4U, val.asArray().size()); const auto &arr = val.asArray(); @@ -523,6 +523,45 @@ TEST(StructType, indexOf) ASSERT_EQ(-1, structType->indexOf("#0")); } +TEST(StructType, buildWithDefaults) +{ + Logger logger; + Manager mgr; + Rooted<StructType> structType = createStructType(mgr, logger); + + { + Variant var{{{"b", 42}, {"a", 5}}}; + ASSERT_TRUE(structType->build(var, logger)); + + const auto &arr = var.asArray(); + ASSERT_EQ(4U, arr.size()); + ASSERT_EQ("attr1default", arr[0].asString()); + ASSERT_EQ("42", arr[1].asString()); + ASSERT_EQ(3, arr[2].asInt()); + ASSERT_EQ(5, arr[3].asInt()); + } +} + +TEST(StructType, buildWithIndicesAndDefaults) +{ + Logger logger; + Manager mgr; + Rooted<StructType> structType = createStructType(mgr, logger); + + { + Variant var{{{"b", 42}, {"#3", 5}, {"#0", "foo"}}}; + ASSERT_TRUE(structType->build(var, logger)); + + const auto &arr = var.asArray(); + ASSERT_EQ(4U, arr.size()); + ASSERT_EQ("foo", arr[0].asString()); + ASSERT_EQ("42", arr[1].asString()); + ASSERT_EQ(3, arr[2].asInt()); + ASSERT_EQ(5, arr[3].asInt()); + } +} + + /* Class ArrayType */ TEST(ArrayType, rtti) |