diff options
Diffstat (limited to 'test/core/model')
| -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)  | 
