diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-12 23:51:08 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-12 23:51:08 +0100 |
commit | c72fff236dd65c7142242b3faf93750e64dd6ba1 (patch) | |
tree | 0cdf82215062426a9efffd3cff88113c6d716d73 /test | |
parent | 1f8c4a5fcfb7b60c0fea62c7de81c69cef325a0a (diff) |
Implemented and tested "Any" Argument type
Diffstat (limited to 'test')
-rw-r--r-- | test/core/common/ArgumentTest.cpp | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/core/common/ArgumentTest.cpp b/test/core/common/ArgumentTest.cpp index f3f8f2b..bd88035 100644 --- a/test/core/common/ArgumentTest.cpp +++ b/test/core/common/ArgumentTest.cpp @@ -52,6 +52,63 @@ static const Rtti<ousia::TestManaged2> TestManaged2 = RttiBuilder("TestManaged2").parent(&TestManaged1); } +TEST(Argument, validateAny) +{ + Argument a = Argument::Any("a"); + + ASSERT_FALSE(a.hasDefault); + + { + Variant v{true}; + ASSERT_TRUE(a.validate(v, logger)); + ASSERT_TRUE(v.isBool()); + ASSERT_TRUE(v.asBool()); + } + + { + Variant v{"test"}; + ASSERT_TRUE(a.validate(v, logger)); + ASSERT_TRUE(v.isString()); + ASSERT_EQ("test", v.asString()); + } + + { + Variant v{{1, 2, 3, 4}}; + ASSERT_TRUE(a.validate(v, logger)); + ASSERT_TRUE(v.isArray()); + ASSERT_EQ(Variant::arrayType({1, 2, 3, 4}), v.asArray()); + } +} + +TEST(Argument, validateAnyDefault) +{ + Argument a = Argument::Any("a", true); + + ASSERT_TRUE(a.hasDefault); + ASSERT_TRUE(a.defaultValue.asBool()); + + { + Variant v{true}; + ASSERT_TRUE(a.validate(v, logger)); + ASSERT_TRUE(v.isBool()); + ASSERT_TRUE(v.asBool()); + } + + { + Variant v{"test"}; + ASSERT_TRUE(a.validate(v, logger)); + ASSERT_TRUE(v.isString()); + ASSERT_EQ("test", v.asString()); + } + + { + Variant v{{1, 2, 3, 4}}; + ASSERT_TRUE(a.validate(v, logger)); + ASSERT_TRUE(v.isArray()); + ASSERT_EQ(Variant::arrayType({1, 2, 3, 4}), v.asArray()); + } +} + TEST(Argument, validateBool) { Argument a = Argument::Bool("a"); |