/* * commandlinetest.cpp * * Created on: Jul 31, 2016 * Author: gregor */ #include #include "GLTB/commandline.h" TEST(CommandLineParser, findArgumentWithoutParameters) { int argc = 3; const char *argv[] = { "program", "--handled", "unhandled" }; gltb::RefPtr argument = new gltb::CommandLineArgument("--handled", 0); gltb::CommandLineParser parser; parser.registerArgument(argument); parser.parse(argc, argv); ASSERT_TRUE(argument->isPresent()); ASSERT_EQ(1, argument->getNumOccurrences()); ASSERT_EQ(1, parser.getUnhandledArguments().size()); ASSERT_EQ("unhandled", parser.getUnhandledArguments()[0]); } TEST(CommandLineParser, findArgumentWithParameters) { int argc = 4; const char *argv[] = { "program", "--handled", "parameter", "unhandled" }; gltb::RefPtr argument = new gltb::CommandLineArgument("--handled", 1); gltb::CommandLineParser parser; parser.registerArgument(argument); parser.parse(argc, argv); ASSERT_TRUE(argument->isPresent()); ASSERT_EQ(1, argument->getNumOccurrences()); ASSERT_EQ(1, argument->getParameters().size()); ASSERT_EQ("parameter", argument->getParameters()[0]); ASSERT_EQ(1, argument->getNumOccurrences()); ASSERT_EQ(1, parser.getUnhandledArguments().size()); ASSERT_EQ("unhandled", parser.getUnhandledArguments()[0]); } TEST(CommandLineParser, findFloatVectorArgument) { int argc = 5; const char *argv[] = { "program", "--vectorArg", "1", "2.5", "3" }; gltb::RefPtr> argument = new gltb::CommandLineFloatVectorArgument("--vectorArg", true); gltb::CommandLineParser parser; parser.registerArgument(argument); parser.parse(argc, argv); ASSERT_TRUE(argument->isPresent()); ASSERT_EQ(1, argument->getNumOccurrences()); ASSERT_EQ(glm::vec3(1, 2.5f, 3), argument->getValue()); } int main(int argc, char *argv[]) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }