// Purpose: wxCmdLineParser unit test
// Author: Vadim Zeitlin
// Created: 2008-04-12
-// RCS-ID: $Id$
// Copyright: (c) 2008 Vadim Zeitlin <vadim@wxwidgets.org>
///////////////////////////////////////////////////////////////////////////////
// register in the unnamed registry so that these tests are run by default
CPPUNIT_TEST_SUITE_REGISTRATION( CmdLineTestCase );
-// also include in it's own registry so that these tests can be run alone
+// also include in its own registry so that these tests can be run alone
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( CmdLineTestCase, "CmdLineTestCase" );
// ============================================================================
p.AddSwitch("b");
p.AddSwitch("c");
p.AddSwitch("d");
+ p.AddSwitch("n", "neg", "Switch that can be negated",
+ wxCMD_LINE_SWITCH_NEGATABLE);
p.SetCmdLine("");
CPPUNIT_ASSERT_EQUAL(0, p.Parse(false) );
CPPUNIT_ASSERT( !p.Found("b") );
CPPUNIT_ASSERT( !p.Found("c") );
CPPUNIT_ASSERT( p.Found("d") );
+
+ p.SetCmdLine("-n");
+ CPPUNIT_ASSERT_EQUAL(0, p.Parse(false) );
+ CPPUNIT_ASSERT_EQUAL(wxCMD_SWITCH_NOT_FOUND, p.FoundSwitch("a") );
+ CPPUNIT_ASSERT_EQUAL(wxCMD_SWITCH_ON, p.FoundSwitch("n") );
+
+ p.SetCmdLine("-n-");
+ CPPUNIT_ASSERT_EQUAL(0, p.Parse(false) );
+ CPPUNIT_ASSERT_EQUAL(wxCMD_SWITCH_OFF, p.FoundSwitch("neg") );
+
+ p.SetCmdLine("--neg");
+ CPPUNIT_ASSERT_EQUAL(0, p.Parse(false) );
+ CPPUNIT_ASSERT_EQUAL(wxCMD_SWITCH_ON, p.FoundSwitch("neg") );
+
+ p.SetCmdLine("--neg-");
+ CPPUNIT_ASSERT_EQUAL(0, p.Parse(false) );
+ CPPUNIT_ASSERT_EQUAL(wxCMD_SWITCH_OFF, p.FoundSwitch("n") );
}
void CmdLineTestCase::Usage()