📄 cmacrotester.cpp
字号:
/**************************************************
//$$ BEGIN
CTokenList@@1@1@()
POSITION@@0@1@0
//$$ END
**************************************************/
/**************************************************
作 者:user1
建立日期:2006-8-18
修改日期:
说 明:测试文件,用于测试[CMacro]。
**************************************************/
#include "stdafx.h"
//
/////////////////////////////////////////////////////////////////////////////
#include "CMacroTester.h"
//
/////////////////////////////////////////////////////////////////////////////
void CMacroTester::ClassTest()
{
TEST_SOURCE_NAME(Macro.cpp);
CUSTOM_TEST(CMacro);
//$$
TEST_CALL_BEGIN(CMacro,1,0)
TEST_CALL1(ParseContent_CTokenListR_POSITIONR())//ParseContent(CTokenList&,POSITION&)
TEST_CALL1(ParseParam_CTokenListR_POSITIONR())//ParseParam(CTokenList&,POSITION&)
TEST_CALL1(ParseArg_CTokenListR_POSITIONR_CTokenListR())//ParseArg(CTokenList&,POSITION&,CTokenList&)
TEST_CALL1(Unwind_CTokenListR_POSITIONR())//Unwind(CTokenList&,POSITION&)
TEST_CALL_END()
//$$
}
//
/////////////////////////////////////////////////////////////////////////////
CMacroTester::CMacroTester()
{
pObj = 0;
}
CMacroTester::~CMacroTester()
{
}
void CMacroTester::BeginCase(int arg)
{
switch(arg)
{
case ARG_DEFAULT:
{
pObj = new TESTCLASS();
break;
}
/*
case :
{
pObj = new TESTCLASS();
break;
}
case :
{
pObj = new TESTCLASS();
break;
}
*/
}
}
void CMacroTester::EndCase(int /*arg*/)
{
delete pObj;
pObj = 0;
}
//自定义测试,用MY_ASSERT(布尔表达式)断言预期输出
/////////////////////////////////////////////////////////////////////////////
void CMacroTester::CustomTest()
{
}
//
/////////////////////////////////////////////////////////////////////////////
void CMacroTester::ParseContent_CTokenListR_POSITIONR()
{
TEST_BEGIN(CMacro::ParseContent(CTokenList&,POSITION&));
//$$CASE_BEGIN(ParseContent_CTokenListR_POSITIONR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, " Visual Unit \n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseContent(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-8-26 22:33:11]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, " Visual \\\nUnit \n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseContent(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-8-26 22:59:42]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "() Visual Unit \n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseContent(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-8-26 22:58:49]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "(ver) Visual Unit ver\n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseContent(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-8-26 23:0:46]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "(ver, date) Visual Unit ver date\n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseContent(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [5] [正常] [2006-8-26 23:1:12]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "(ver, date) Visual Unit #ver date\n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseContent(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [6] [正常] [2006-8-26 23:1:29]
//??BVTEST_BEGIN_2(O,CTokenList,ioList,R,0,POSITION,ioPos,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( pObj->ParseContent(ioList, ioPos) );
//TEST_ASSERT();
//??BVTEST_END(O,2)
//$$ [7] [自动] [2006-8-26 22:33:11]
//$$CASE_END(ParseContent_CTokenListR_POSITIONR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseContent_CTokenListR_POSITIONR()
void CMacroTester::ParseParam_CTokenListR_POSITIONR()
{
TEST_BEGIN(CMacro::ParseParam(CTokenList&,POSITION&));
//$$CASE_BEGIN(ParseParam_CTokenListR_POSITIONR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList ;
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseParam(ioList, ioPos) );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-8-26 22:48:56]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, ") Visual Unit\n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseParam(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-8-26 22:49:39]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "ver, /*99*/date) Visual Unit ver date\n");
POSITION ioPos = ioList.GetHeadPosition();
TEST_RUN( pObj->ParseParam(ioList, ioPos) );
reader.ClearTokenList(ioList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-8-26 22:57:38]
//??BVTEST_BEGIN_2(O,CTokenList,ioList,R,0,POSITION,ioPos,R,0)
//自动边界测试用例,可用TEST_FILTER()过滤输入数据
//TEST_FILTER();
//??TEST_RUN( pObj->ParseParam(ioList, ioPos) );
//TEST_ASSERT();
//??BVTEST_END(O,2)
//$$ [4] [自动] [2006-8-26 22:48:56]
//$$CASE_END(ParseParam_CTokenListR_POSITIONR())
TEST_RATE(1000);
TEST_END();
}
//$$ParseParam_CTokenListR_POSITIONR()
void CMacroTester::ParseArg_CTokenListR_POSITIONR_CTokenListR()
{
TEST_BEGIN(CMacro::ParseArg(CTokenList&,POSITION&,CTokenList&));
BOOL ret;
//$$CASE_BEGIN(ParseArg_CTokenListR_POSITIONR_CTokenListR())
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
POSITION ioPos = ioList.GetHeadPosition();
CTokenList oArgTokenList;
TEST_RUN( ret = pObj->ParseArg(ioList, ioPos, oArgTokenList) );
TEST_ASSERT( ret == FALSE );
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [1] [正常] [2006-8-27 9:27:46]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "1.2.2, 20060821) abcd");
POSITION ioPos = ioList.GetHeadPosition();
CTokenList oArgTokenList;
TEST_RUN( ret = pObj->ParseArg(ioList, ioPos, oArgTokenList) );
TEST_RUN( ret = pObj->ParseArg(ioList, ioPos, oArgTokenList) );
TEST_ASSERT( ret == FALSE );
reader.ClearTokenList(ioList); //!
reader.ClearTokenList(oArgTokenList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [2] [正常] [2006-8-27 9:37:8]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "1.2.2) abcd");
POSITION ioPos = ioList.GetHeadPosition();
CTokenList oArgTokenList;
TEST_RUN( ret = pObj->ParseArg(ioList, ioPos, oArgTokenList) );
TEST_ASSERT( ret == FALSE );
reader.ClearTokenList(ioList); //!
reader.ClearTokenList(oArgTokenList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [3] [正常] [2006-8-27 9:46:40]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "1.2.2; abcd");
POSITION ioPos = ioList.GetHeadPosition();
CTokenList oArgTokenList;
TEST_EXCEPTION()
TEST_RUN( ret = pObj->ParseArg(ioList, ioPos, oArgTokenList) );
TEST_THROW(CCodeException)
reader.ClearTokenList(ioList); //!
reader.ClearTokenList(oArgTokenList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [4] [正常] [2006-8-27 9:47:30]
///
TEST_CASE_BEGINO( ARG_DEFAULT );
CTokenList ioList;
CTokenReader reader;
reader.ReadTokenList(ioList, "1.2.2 1228 584, 20060821) abcd");
POSITION ioPos = ioList.GetHeadPosition();
CTokenList oArgTokenList;
TEST_RUN( ret = pObj->ParseArg(ioList, ioPos, oArgTokenList) );
TEST_ASSERT( ret == TRUE );
reader.ClearTokenList(ioList); //!
reader.ClearTokenList(oArgTokenList); //!
TEST_CASE_ENDO( ARG_DEFAULT );
//$$ [5] [正常] [2006-8-27 9:38:56]
///
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -