From ef1aa10fdb45e0fe7a03382a6a5b26a6aa0dc7bd Mon Sep 17 00:00:00 2001 From: Henry Fredrick Schreiner Date: Wed, 18 Apr 2018 23:42:17 +0200 Subject: [PATCH] Test all optionals --- tests/OptionalTest.cpp | 54 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/tests/OptionalTest.cpp b/tests/OptionalTest.cpp index 305f4274..b67e4ade 100644 --- a/tests/OptionalTest.cpp +++ b/tests/OptionalTest.cpp @@ -3,10 +3,10 @@ #include "app_helper.hpp" -#ifdef CLI11_OPTIONAL +#ifdef CLI11_STD_OPTIONAL -TEST_F(TApp, OptionalTest) { - CLI::optional opt; +TEST_F(TApp, StdOptionalTest) { + std::optional opt; app.add_option("-c,--count", opt); run(); EXPECT_FALSE(opt); @@ -24,8 +24,52 @@ TEST_F(TApp, OptionalTest) { EXPECT_EQ(*opt, 3); } -#else +#endif +#ifdef CLI11_EXPERIMENTAL_OPTIONAL -TEST_F(TApp, DISABLED_OptionalTest) {} +TEST_F(TApp, ExperimentalOptionalTest) { + std::experimental::optional opt; + app.add_option("-c,--count", opt); + run(); + EXPECT_FALSE(opt); + + app.reset(); + args = {"-c", "1"}; + run(); + EXPECT_TRUE(opt); + EXPECT_EQ(*opt, 1); + + app.reset(); + args = {"--count", "3"}; + run(); + EXPECT_TRUE(opt); + EXPECT_EQ(*opt, 3); +} #endif +#ifdef CLI11_BOOST_OPTIONAL + +TEST_F(TApp, BoostOptionalTest) { + boost::optional opt; + app.add_option("-c,--count", opt); + run(); + EXPECT_FALSE(opt); + + app.reset(); + args = {"-c", "1"}; + run(); + EXPECT_TRUE(opt); + EXPECT_EQ(*opt, 1); + + app.reset(); + args = {"--count", "3"}; + run(); + EXPECT_TRUE(opt); + EXPECT_EQ(*opt, 3); +} + +#endif + +#ifndef CLI11_OPTIONAL +TEST_F(TApp, DISABLED_OptionalTest) {} +#endif