diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-12-23 23:39:27 +0100 |
---|---|---|
committer | Andreas Stöckel <andreas@somweyr.de> | 2014-12-23 23:39:27 +0100 |
commit | bc5eb58c47855e1a20f2709fa52a0f9a08603d51 (patch) | |
tree | 1a6bc9658b07bcc933ad4a5ff30f5c4f351cb12e /test/core | |
parent | 5beaf5c18d8690b88981c30ff210dce86fd8e515 (diff) |
some more work on the Typesystem front (documentation and unit tests, still not done)
Diffstat (limited to 'test/core')
-rw-r--r-- | test/core/model/TestDomain.hpp | 3 | ||||
-rw-r--r-- | test/core/model/TypesystemTest.cpp | 51 |
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) |