📄 option.cpp
字号:
for(size_t i=0; i<params; ++i) {
result += " \"";
result += item[i];
result += '\"';
}
}
++ scope;
}
//愭摢偺嬻敀傪庢傝彍偔
if(!result.empty())
result = result.substr(1);
return result;
}
/***************** 僥僗僩僗傿乕僩 *****************/
#ifdef TESTSUITE
#include "coverage_undefs.h"
TESTSUITE_(main,OptionItem,OptionParameter)
{
BEGIN_CASE("01","僨僼僅儖僩僷儔儊乕僞偑" DEFAULT_PARAMETER "偵側偭偰偄傞") {
OptionItem work;
if(work.compare(DEFAULT_PARAMETER) != 0)
TEST_FAIL;
} END_CASE;
//----
BEGIN_CASE("02","僐儞僗僩儔僋僞僠僃僢僋 (checked == false, 僷儔儊乕僞柤)") {
BEGIN_CASE("1","OptionItem(void)") {
OptionItem work;
if(work.checked != false)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2","OptionItem(const string &)") {
OptionItem work("test");
if(work.compare("test") != 0 || work.checked != false)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("3","OptionItem(const OptionItem &)") {
OptionItem dummy("test");
OptionItem work(dummy);
if(work.compare("test") != 0 || work.checked != false)
TEST_FAIL;
} END_CASE;
} END_CASE;
//----
BEGIN_CASE("03", "addParameter / countParameter / operator []") {
const char * container[] = { "first", "second", "third", "forth", "fifth", NULL };
const char ** param = container;
int i;
OptionItem work;
BEGIN_CASE("1", "嶌偭偨捈屻偺countParameter偼0") {
if(work.countParameter() != 0)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2", "addParameter偡傞偨傃偵1偢偮憹偊傞偼偢") {
while(*param != NULL) {
size_t count = work.countParameter();
work.addParameter(*param);
if(work.countParameter() != count + 1)
TEST_FAIL;
++ param;
}
} END_CASE;
BEGIN_CASE("3", "擖傟偨傕偺偼偪傖傫偲擖偭偰傞") {
i = 0;
param = container;
while(*param != NULL) {
if(work[i].compare(*param) != 0)
TEST_FAIL;
++ i;
++ param;
}
} END_CASE;
BEGIN_CASE("4", "operator[]偵斖埻奜偺僷儔儊乕僞傪擖傟傞偲嬻暥帤偑曉傞") {
if(!work[10000].empty())
TEST_FAIL;
} END_CASE;
} END_CASE;
//----
BEGIN_CASE("04", "hasParameter") {
OptionItem work;
BEGIN_CASE("1", "拞恎偑側偄偲偒偼false偑曉傞") {
if(work.hasParameter())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2", "拞恎偑偁傞偲偒偼true偑曉傞") {
work.addParameter("dummy");
if(!work.hasParameter())
TEST_FAIL;
} END_CASE;
} END_CASE;
//----
BEGIN_CASE("mergeItem", "mergeItem") {
OptionItem work;
OptionItem work2;
work.addParameter("one");
work2.addParameter("two");
work.mergeItem(work2);
BEGIN_CASE("1","儅乕僕偝傟偰偄傞") {
if(work[0].compare("one") != 0 || work[1].compare("two") != 0 || work.countParameter() != 2)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2","曄峏尦偼曄壔側偟") {
if(work2[0].compare("two") != 0 || work2.countParameter() != 1)
TEST_FAIL;
} END_CASE;
} END_CASE;
//----
BEGIN_CASE("isChecked/checked", "isChecked/check") {
OptionItem work;
BEGIN_CASE("1","嵟弶偼unchecked忬懺") {
if(work.isChecked() != false)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2","check傪偮偗傞") {
work._check();
if(work.isChecked() != true)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("3","傕偆堦夞傗偭偰傕僩僌儖偵側傜側偄") {
work._check();
if(work.isChecked() != true)
TEST_FAIL;
} END_CASE;
} END_CASE;
//----
BEGIN_CASE("CopyConstructor", "僐僺乕僐儞僗僩儔僋僞偱僷儔儊乕僞偑堏傞偐") {
OptionItem src;
src.addParameter("one");
OptionItem dest(src);
if(dest.countParameter() != 1 || dest[0].compare("one") != 0)
TEST_FAIL;
} END_CASE;
//----
BEGIN_CASE("TrimString", "TrinString偑偪傖傫偲摦偔偐") {
BEGIN_CASE("1","愭摢偺嬻敀暥帤偑徚偊傞") {
string work(" \r\n\ttest");
TrimString(work);
if(work.compare("test") != 0)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2","嬻敀暥帤偩偗偐傜惉傞暥帤楍") {
string work(" ");
TrimString(work);
if(!work.empty())
TEST_FAIL;
} END_CASE;
} END_CASE;
//----
BEGIN_CASE("createItem", "createItem娭悢偺摦嶌専徹") {
BEGIN_CASE("1", "嬻偭傐偺暥帤楍傪偄傟傞偲幐攕偡傞") {
OptionItem work;
string param("");
if(OptionItem::createItem(work, param))
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2", "堷悢側偟僆僾僔儑儞") {
OptionItem work;
string arg("-test");
if(!OptionItem::createItem(work, arg))
TEST_FAIL;
if(work.compare("test") != 0 || work.hasParameter())
TEST_FAIL;
if(!arg.empty())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("3", "楢懕偡傞堷悢側偟僆僾僔儑儞") {
OptionItem work;
string arg("-test -test2");
if(!OptionItem::createItem(work, arg))
TEST_FAIL;
if(arg.compare("-test2") != 0)
TEST_FAIL;
} END_CASE;
BEGIN_CASE("4", "堷悢偮偒僆僾僔儑儞(-test param)") {
OptionItem work;
string arg("-test param");
if(!OptionItem::createItem(work, arg))
TEST_FAIL;
if(work.compare("test") != 0)
TEST_FAIL;
if(work.countParameter() != 1 || work[0].compare("param") != 0)
TEST_FAIL;
if(!arg.empty())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("5", "堷悢偮偒僆僾僔儑儞(-test=param)") {
OptionItem work;
string arg("-test=param");
if(!OptionItem::createItem(work, arg))
TEST_FAIL;
if(work.compare("test") != 0)
TEST_FAIL;
if(work.countParameter() != 1 || work[0].compare("param") != 0)
TEST_FAIL;
if(!arg.empty())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("6", "堷悢偮偒僆僾僔儑儞(-test=\"a b c\")") {
OptionItem work;
string arg("-test=\"a b c\"");
if(!OptionItem::createItem(work, arg))
TEST_FAIL;
if(work.compare("test") != 0)
TEST_FAIL;
if(work.countParameter() != 1 || work[0].compare("a b c") != 0)
TEST_FAIL;
if(!arg.empty())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("7", "楢懕偟偨堷悢偮偒僆僾僔儑儞(-test one two)") {
OptionItem work;
string arg("-test one two");
if(!OptionItem::createItem(work, arg))
TEST_FAIL;
if(work.compare("test") != 0)
TEST_FAIL;
if(work.countParameter() != 2 || work[0].compare("one") != 0 || work[1].compare("two") != 0)
TEST_FAIL;
if(!arg.empty())
TEST_FAIL;
} END_CASE;
BEGIN_CASE("8", "僴僀僼儞") {
BEGIN_CASE("1", "僴僀僼儞偩偗偺堷悢偼庴偗晅偗側偄") {
OptionItem work;
string arg("-");
if(OptionItem::createItem(work, arg))
TEST_FAIL;
} END_CASE;
BEGIN_CASE("2", "僴僀僼儞偩偗偺堷悢偼庴偗晅偗側偄(楢懕)") {
OptionItem work;
string arg("- - -");
if(OptionItem::createItem(work, arg))
TEST_FAIL;
} END_CASE;
BEGIN_CASE("3", "僟僽儖僋僅乕僩偱偔偔傜傟偨僴僀僼儞偼庴偗晅偗傞") {
OptionItem work;
string arg("\"-\"");
if(!OptionItem::createItem(work, arg))
TEST_FAIL;
if(work.compare(DEFAULT_PARAMETER) != 0 || work.countParameter() != 1 || work[0].compare("-") != 0)
TEST_FAIL;
} END_CASE;
} END_CASE;
BEGIN_CASE("9", "懳偵側傞僟僽儖僋僅乕僩偑寚偗偨堷悢偼庴偗晅偗側偄") {
OptionItem work;
string arg("-test=\"a b c");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -