summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-12 23:51:08 +0100
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2015-01-12 23:51:08 +0100
commitc72fff236dd65c7142242b3faf93750e64dd6ba1 (patch)
tree0cdf82215062426a9efffd3cff88113c6d716d73 /test
parent1f8c4a5fcfb7b60c0fea62c7de81c69cef325a0a (diff)
Implemented and tested "Any" Argument type
Diffstat (limited to 'test')
-rw-r--r--test/core/common/ArgumentTest.cpp57
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");