summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-12-29 00:44:34 +0100
committerAndreas Stöckel <andreas@somweyr.de>2014-12-29 00:44:34 +0100
commit6dd1e1660e8d97ae1c93ff463c58a780c14b08f4 (patch)
tree9c656e187a1650a7d7b9b221c3478f20c5807183 /test
parent0af66457f7739df4c1b151b2adb7479d87275c9a (diff)
fixed StructType::cast signature, more unit tests
Diffstat (limited to 'test')
-rw-r--r--test/core/model/TypesystemTest.cpp41
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)