AUTOMAKE_OPTIONS = subdir-objects
-TESTS = \
+TEST_PROGS = \
descriptive_holds_data.test \
callable_invokes_provided_function.test \
callable_invokes_void_function.test \
multivalue_should_extract_arguments_by_separator.test \
multivalue_should_extract_options_by_separator.test
-noinst_PROGRAMS = $(TESTS)
+TEST_SCRPTS = \
+ command/understand_void_option.test \
+ command/understand_bool_option.test
+
+TESTS = \
+ $(TEST_PROGS) \
+ $(TEST_SCRPTS)
+
+EXTRA_DIST = \
+ $(TEST_SCRPTS)
+
+noinst_PROGRAMS = \
+ $(TEST_PROGS) \
+ command/option_test_command
AM_CXXFLAGS = -I$(top_srcdir)/include -std=c++11
+check-% : %.test all
+ @srcdir=$(srcdir); export srcdir;
+
descriptive_holds_data_test_SOURCES = descriptive/holds_data.cpp
callable_invokes_provided_function_test_SOURCES = callable/invokes_provided_function.cpp
multivalue_should_extract_arguments_by_separator_test_SOURCES = multiValue/should_extract_arguments_by_separator.cpp
multivalue_should_extract_options_by_separator_test_SOURCES = multiValue/should_extract_options_by_separator.cpp
+
+command_option_test_command_SOURCES = command/src/option_test_command.cpp
--- /dev/null
+#include <iostream>
+#include <string>
+#include <stdexcept>
+
+#include "option.h"
+#include "command.h"
+
+using namespace command;
+
+void option_function(std::string a) {
+ std::cout << "Help function " << a << std::endl;
+}
+
+int main(int argc, char *argv[]) {
+ try {
+ Command command(argc, argv, {
+ new Option<void>("void", "void Test", [](void) {
+ std::cout << "VOID" << std::endl;
+ }),
+ new Option<char>("char", "char Test", [](char a) {
+ std::cout << "char: " << a << std::endl;
+ }),
+ new Option<bool>("bool", "bool Test", [](bool b) {
+ std::cout << "bool: " << b << std::endl;
+ }),
+ new Option<int>("int", "int Test", [](int i) {
+ std::cout << "int: " << i << std::endl;
+ }),
+ new Option<float>("float", "float Test", [](float f) {
+ std::cout << "float: " << f << std::endl;
+ }),
+ new Option<std::string>("std::string", "std::string Test", [](std::string s) {
+ std::cout << "std::string: " << s << std::endl;
+ })
+ });
+ }
+ catch(const std::exception & e) {
+ std::cout << e.what() << std::endl;
+ return 1;
+ }
+
+ return 0;
+}
\ No newline at end of file