summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/core/model/TestDomain.hpp3
-rw-r--r--test/core/model/TypesystemTest.cpp51
2 files changed, 51 insertions, 3 deletions
diff --git a/test/core/model/TestDomain.hpp b/test/core/model/TestDomain.hpp
index d4421a4..55a5d9b 100644
--- a/test/core/model/TestDomain.hpp
+++ b/test/core/model/TestDomain.hpp
@@ -36,8 +36,7 @@ static Rooted<Typesystem> constructTypeSystem(Manager &mgr)
Rooted<StringType> string{new StringType(mgr, sys)};
sys->addType(string);
Rooted<StructType> string_struct{new StructType(
- mgr, "text", sys, {new StructType::AttributeDescriptor(
- mgr, "content", "", false, string)})};
+ mgr, "text", sys, {new Attribute(mgr, "content", string, "", false)})};
sys->addType(string_struct);
return sys;
diff --git a/test/core/model/TypesystemTest.cpp b/test/core/model/TypesystemTest.cpp
index 0e2dc8a..3447b1c 100644
--- a/test/core/model/TypesystemTest.cpp
+++ b/test/core/model/TypesystemTest.cpp
@@ -144,7 +144,7 @@ TEST(IntType, conversion)
}
}
-/* Class IntType */
+/* Class DoubleType */
TEST(DoubleType, rtti)
{
@@ -192,6 +192,55 @@ TEST(DoubleType, conversion)
}
}
+/* Class BoolType */
+
+TEST(BoolType, rtti)
+{
+ Manager mgr;
+ Rooted<BoolType> boolType{new BoolType(mgr, nullptr)};
+ ASSERT_TRUE(boolType->isa(RttiTypes::BoolType));
+ ASSERT_TRUE(boolType->isa(typeOf<Type>()));
+ ASSERT_TRUE(boolType->isa(typeOf<Node>()));
+}
+
+TEST(BoolType, creation)
+{
+ Manager mgr;
+ Rooted<BoolType> boolType{new BoolType(mgr, nullptr)};
+ Variant val = boolType->create();
+ ASSERT_TRUE(val.isBool());
+ ASSERT_FALSE(val.asBool());
+}
+
+TEST(BoolType, conversion)
+{
+ Logger logger;
+ Manager mgr;
+ Rooted<BoolType> boolType{new BoolType(mgr, nullptr)};
+
+ {
+ Variant val{true};
+ ASSERT_TRUE(boolType->build(val, logger));
+ ASSERT_TRUE(val.isBool());
+ ASSERT_TRUE(val.asBool());
+ }
+
+ {
+ Variant val{false};
+ ASSERT_TRUE(boolType->build(val, logger));
+ ASSERT_TRUE(val.isBool());
+ ASSERT_FALSE(val.asBool());
+ }
+
+ {
+ Variant val{314};
+ ASSERT_FALSE(boolType->build(val, logger));
+ ASSERT_TRUE(val.isBool());
+ ASSERT_FALSE(val.asBool());
+ }
+}
+
+
/* Class ArrayType */
TEST(ArrayType, rtti)