📄 component.cpp
字号:
TEST_FAIL;
} END_CASE;
} END_CASE;
BEGIN_CASE("7","Component::is_valid偑false偺偲偒偼幚峴偝傟側偄") {
chain.renewInstance();
bool result = true;
TestComponent test;
test.activation = true;
Component::is_valid = false;
Exception::setThrowControl(true);
try { executeComponents(getOptionParameter()); }
catch(...) { result = false; }
BEGIN_CASE("1","椺奜偼婲偙傜側偄") {
if(!result)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2","parseOption/body偼幚峴偝傟側偄") {
if(test.check_parseOption || test.check_body || test.check_onFatalExit)
TEST_FAIL;
} END_CASE;
Component::is_valid = true;
} END_CASE;
} END_CASE;
BEGIN_CASE("_parseCommonOption","_parseCommonOption") {
BEGIN_CASE("1", "-debug偱DebugMessage偑桳岠偵側傞") {
chain.renewInstance();
char * argv[] = { "test.exe", "-debug" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
Component::_parseCommonOption(param);
if(!DebugMessage::getVerbose())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2", "-v 偱VerboseMessage偑桳岠偵側傞") {
chain.renewInstance();
char * argv[] = { "test.exe", "-v" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
Component::_parseCommonOption(param);
if(!VerboseMessage::getVerbose())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("3", "--verbose偱VerboseMessage偑桳岠偵側傞") {
chain.renewInstance();
char * argv[] = { "test.exe", "--verbose" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
Component::_parseCommonOption(param);
if(!VerboseMessage::getVerbose())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("4", "-lj 偱Message偑擔杮岅偵側傞") {
chain.renewInstance();
char * argv[] = { "test.exe", "-lj" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
Component::_parseCommonOption(param);
if(Message::getCurrentLanguage() != Message::JAPANESE)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("5", "--japanese 偱Message偑擔杮岅偵側傞") {
chain.renewInstance();
char * argv[] = { "test.exe", "--japanese" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
Component::_parseCommonOption(param);
if(Message::getCurrentLanguage() != Message::JAPANESE)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("6", "-le 偱Message偑塸岅偵側傞") {
chain.renewInstance();
char * argv[] = { "test.exe", "-le" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
Component::_parseCommonOption(param);
if(Message::getCurrentLanguage() != Message::ENGLISH)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("7", "--english 偱Message偑塸岅偵側傞") {
chain.renewInstance();
char * argv[] = { "test.exe", "--english" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
Component::_parseCommonOption(param);
if(Message::getCurrentLanguage() != Message::ENGLISH)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("8","僿儖僾偑偱傞 (-h)") {
chain.renewInstance();
char * argv[] = { "test.exe", "-h" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
cout.str("");
Component::_parseCommonOption(param);
//偲傝偁偊偢壗偐弌椡偝傟偰偄傞偙偲偩偗妋擣偟偰偍偔
if(cout.str().empty())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("9","僿儖僾偑偱傞 (--help)") {
chain.renewInstance();
char * argv[] = { "test.exe", "--help" };
OptionParameter & param = getOptionParameter();
param.parseOption(2, argv);
cout.str("");
Component::_parseCommonOption(param);
//偲傝偁偊偢壗偐弌椡偝傟偰偄傞偙偲偩偗妋擣偟偰偍偔
if(cout.str().empty())
TEST_FAIL;
} END_CASE;
} END_CASE;
BEGIN_CASE("getOption","僆僾僔儑儞僷儔儊乕僞偺庢摼") {
chain.renewInstance();
char * argv[] = { "test.exe","-test","param","-test2","param2", "--test","param3","--test2","param4" };
getOptionParameter().parseOption(9, argv);
BEGIN_CASE("1","getOption(test)偱param偑庢傟傞") {
OptionParameter::OptionItem item;
item = getOption("test");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","僠僃僢僋嵪傒偱偁傞", item.isChecked());
TEST_CASE("3","1偮偺僷儔儊乕僞傪傕偮", item.countParameter() == 1);
TEST_CASE("4","僷儔儊乕僞偺撪梕偑偁偭偰偄傞", item[0].compare("param") == 0);
} END_CASE;
BEGIN_CASE("2","getOption(test,test)偱2偮偺楢寢偑庢傟傞") {
OptionParameter::OptionItem item;
TEST_CASE("0","[慜採] --test偵僠僃僢僋偼偮偄偰偄側偄", !getOptionParameter().get("-test",false).isChecked());
item = getOption("test","test");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","僠僃僢僋嵪傒偱偁傞", item.isChecked());
TEST_CASE("3","僠僃僢僋嵪傒偱偁傞 (test)", getOptionParameter().get("test",false).isChecked());
TEST_CASE("4","僠僃僢僋嵪傒偱偁傞 (-test)", getOptionParameter().get("-test",false).isChecked());
TEST_CASE("5","2偮偺僷儔儊乕僞傪帩偮", item.countParameter() == 2);
TEST_CASE("6","1偮傔偺僷儔儊乕僞偺抣偼惓偟偄", item[0].compare("param") == 0);
TEST_CASE("7","2偮傔偺僷儔儊乕僞偺抣偼惓偟偄", item[1].compare("param3") == 0);
} END_CASE;
BEGIN_CASE("3","getOption(test,unknown)偱test偺僷儔儊乕僞偑庢傟傞") {
OptionParameter::OptionItem item;
item = getOption("test","unknown");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","1偮偺僷儔儊乕僞傪帩偮", item.countParameter() == 1);
TEST_CASE("3","僷儔儊乕僞偺抣偼惓偟偄", item[0].compare("param") == 0);
} END_CASE;
BEGIN_CASE("4","getOption(unknown,test)偱 -test偺僷儔儊乕僞偑庢傟傞") {
OptionParameter::OptionItem item;
item = getOption("unknown","test");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","1偮偺僷儔儊乕僞傪帩偮", item.countParameter() == 1);
TEST_CASE("3","僷儔儊乕僞偺抣偼惓偟偄", item[0].compare("param3") == 0);
} END_CASE;
BEGIN_CASE("5","getOption(unknown,unknown)偱柍岠側傾僀僥儉偑曉傞") {
OptionParameter::OptionItem item;
item = getOption("unknown","unknown");
TEST_CASE("1","柍岠側抣偑曉傞", !item.isValid());
} END_CASE;
BEGIN_CASE("6","getOption(test2,test2,false)偱僠僃僢僋偑偮偐側偄") {
OptionParameter::OptionItem item;
TEST_CASE("0","[慜採] -test2偵僠僃僢僋偼偮偄偰偄側偄", !getOptionParameter().get("test2",false).isChecked());
TEST_CASE("0","[慜採] --test2偵僠僃僢僋偼偮偄偰偄側偄", !getOptionParameter().get("-test2",false).isChecked());
item = getOption("test2","test2",false);
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","僠僃僢僋嵪傒偱側偄", !item.isChecked());
TEST_CASE("3","僠僃僢僋嵪傒偱側偄 (test2)", !getOptionParameter().get("test2",false).isChecked());
TEST_CASE("4","僠僃僢僋嵪傒偱側偄 (-test2)", !getOptionParameter().get("-test2",false).isChecked());
TEST_CASE("5","2偮偺僷儔儊乕僞傪帩偮", item.countParameter() == 2);
TEST_CASE("6","1偮傔偺僷儔儊乕僞偺抣偼惓偟偄", item[0].compare("param2") == 0);
TEST_CASE("7","2偮傔偺僷儔儊乕僞偺抣偼惓偟偄", item[1].compare("param4") == 0);
} END_CASE;
} END_CASE;
BEGIN_CASE("findOption","僆僾僔儑儞僷儔儊乕僞偺庢摼") {
chain.renewInstance();
char * argv[] = { "test.exe","-test","param","--test","param3", "-noparam"};
getOptionParameter().parseOption(6, argv);
BEGIN_CASE("1","findOption(test,test)偱param偑庢傟傞") {
string result;
TEST_CASE("0","[慜採] 僠僃僢僋嵪傒偱偼側偄 (test)", !getOptionParameter().get("test",false).isChecked());
TEST_CASE("0","[慜採] 僠僃僢僋嵪傒偱偼側偄 (-test)", !getOptionParameter().get("-test",false).isChecked());
TEST_CASE("1","娭悢偼惉岟偡傞", findOption("test","test",&result));
TEST_CASE("2","暥帤楍偵param偑曉傞", result.compare("param") == 0);
TEST_CASE("3","僠僃僢僋嵪傒 (test)", getOptionParameter().get("test",false).isChecked());
TEST_CASE("3","僠僃僢僋嵪傒 (-test)", getOptionParameter().get("-test",false).isChecked());
} END_CASE;
BEGIN_CASE("2","findOption(test,unknown)偱param偑庢傟傞") {
string result;
TEST_CASE("1","娭悢偼惉岟偡傞", findOption("test","unknown",&result));
TEST_CASE("2","暥帤楍偵param偑曉傞", result.compare("param") == 0);
} END_CASE;
BEGIN_CASE("3","findOption(unknown,test)偱param3偑庢傟傞") {
string result;
TEST_CASE("1","娭悢偼惉岟偡傞", findOption("unknown","test",&result));
TEST_CASE("2","暥帤楍偵param偑曉傞", result.compare("param3") == 0);
} END_CASE;
BEGIN_CASE("4","findOption(unknown,unknown)偱柍岠側傾僀僥儉偑曉傞") {
string result;
result.assign("dummy");
TEST_CASE("1","娭悢偼幐攕偡傞", !findOption("unknown","unknown",&result));
TEST_CASE("2","暥帤楍偼彂偒姺傢傜側偄", result.compare("dummy") == 0);
} END_CASE;
BEGIN_CASE("5","findOption(noparam,NULL,&result)") {
string result;
result.assign("dummy");
TEST_CASE("1","娭悢偼惉岟偡傞", findOption("noparam", 0, &result));
TEST_CASE("2","暥帤楍偼抲偒姺傢傜側偄", result.compare("dummy") == 0);
} END_CASE;
} END_CASE;
BEGIN_CASE("checkOption","僆僾僔儑儞僷儔儊乕僞偺懚嵼妋擣 + 僠僃僢僋") {
chain.renewInstance();
char * argv[] = { "test.exe","-test","param","--test","param3", "-test2", "--test3"};
getOptionParameter().parseOption(7, argv);
BEGIN_CASE("1","checkOption(test,test)偱param偑庢傟傞") {
string result;
TEST_CASE("0","[慜採] 僠僃僢僋嵪傒偱偼側偄 (test)", !getOptionParameter().get("test",false).isChecked());
TEST_CASE("0","[慜採] 僠僃僢僋嵪傒偱偼側偄 (-test)", !getOptionParameter().get("-test",false).isChecked());
TEST_CASE("1","娭悢偼惉岟偡傞", checkOption("test","test"));
TEST_CASE("2","僠僃僢僋嵪傒 (test)", getOptionParameter().get("test",false).isChecked());
TEST_CASE("3","僠僃僢僋嵪傒 (-test)", getOptionParameter().get("-test",false).isChecked());
} END_CASE;
BEGIN_CASE("2","checkOption(test2,unknown)偱param偑庢傟傞") {
string result;
TEST_CASE("0","[慜採] 僠僃僢僋嵪傒偱偼側偄 (test2)", !getOptionParameter().get("test2",false).isChecked());
TEST_CASE("1","娭悢偼惉岟偡傞", checkOption("test2","unknown"));
TEST_CASE("2","僠僃僢僋嵪傒 (test2)", getOptionParameter().get("test2",false).isChecked());
} END_CASE;
BEGIN_CASE("3","checkOption(unknown,test3)偱param3偑庢傟傞") {
string result;
TEST_CASE("0","[慜採] 僠僃僢僋嵪傒偱偼側偄 (test3)", !getOptionParameter().get("-test3",false).isChecked());
TEST_CASE("1","娭悢偼惉岟偡傞", checkOption("unknown","test3"));
TEST_CASE("2","僠僃僢僋嵪傒 (test3)", getOptionParameter().get("-test3",false).isChecked());
} END_CASE;
BEGIN_CASE("4","checkOption(unknown,unknown)偱柍岠側傾僀僥儉偑曉傞") {
string result;
result.assign("dummy");
TEST_CASE("1","娭悢偼幐攕偡傞", !checkOption("unknown","unknown"));
} END_CASE;
} END_CASE;
/* mergeOption偺僠僃僢僋崁栚偼丄getOption偲傎傏摨偠 */
BEGIN_CASE("mergeOption","僆僾僔儑儞僷儔儊乕僞偺寢崌") {
chain.renewInstance();
char * argv[] = { "test.exe","-test","param","-test2","param2", "--test","param3","--test2","param4" };
getOptionParameter().parseOption(9, argv);
BEGIN_CASE("1","mergeOption(test)偱param偑庢傟傞") {
OptionParameter::OptionItem item;
item = mergeOption("test");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","僠僃僢僋嵪傒偱偁傞", item.isChecked());
TEST_CASE("3","1偮偺僷儔儊乕僞傪傕偮", item.countParameter() == 1);
TEST_CASE("4","僷儔儊乕僞偺撪梕偑偁偭偰偄傞", item[0].compare("param") == 0);
} END_CASE;
BEGIN_CASE("2","mergeOption(test,test)偱2偮偺楢寢偑庢傟傞") {
OptionParameter::OptionItem item;
TEST_CASE("0","[慜採] --test偵僠僃僢僋偼偮偄偰偄側偄", !getOptionParameter().get("-test",false).isChecked());
item = mergeOption("test","test");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","僠僃僢僋嵪傒偱偁傞", item.isChecked());
TEST_CASE("3","僠僃僢僋嵪傒偱偁傞 (test)", getOptionParameter().get("test",false).isChecked());
TEST_CASE("4","僠僃僢僋嵪傒偱偁傞 (-test)", getOptionParameter().get("-test",false).isChecked());
TEST_CASE("5","2偮偺僷儔儊乕僞傪帩偮", item.countParameter() == 2);
TEST_CASE("6","1偮傔偺僷儔儊乕僞偺抣偼惓偟偄", item[0].compare("param") == 0);
TEST_CASE("7","2偮傔偺僷儔儊乕僞偺抣偼惓偟偄", item[1].compare("param3") == 0);
} END_CASE;
BEGIN_CASE("3","mergeOption(test,unknown)偱test偺僷儔儊乕僞偑庢傟傞") {
OptionParameter::OptionItem item;
item = mergeOption("test","unknown");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","1偮偺僷儔儊乕僞傪帩偮", item.countParameter() == 1);
TEST_CASE("3","僷儔儊乕僞偺抣偼惓偟偄", item[0].compare("param") == 0);
} END_CASE;
BEGIN_CASE("4","mergeOption(unknown,test)偱 -test偺僷儔儊乕僞偑庢傟傞") {
OptionParameter::OptionItem item;
item = mergeOption("unknown","test");
TEST_CASE("1","桳岠側抣偑曉傞", item.isValid());
TEST_CASE("2","1偮偺僷儔儊乕僞傪帩偮", item.countParameter() == 1);
TEST_CASE("3","僷儔儊乕僞偺抣偼惓偟偄", item[0].compare("param3") == 0);
} END_CASE;
BEGIN_CASE("5","mergeOption(unknown,unknown)偱柍岠側傾僀僥儉偑曉傞") {
OptionParameter::OptionItem item;
item = mergeOption("unknown","unknown");
TEST_CASE("1","柍岠側抣偑曉傞", !item.isValid());
} END_CASE;
} END_CASE;
chain.restoreContext();
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -