⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cxmlnodetester.cpp

📁 这是一个能够自动生成文档的程序
💻 CPP
字号:
/**************************************************
//$$ BEGIN
CString@@0@3@"Visual Unit"$""$"中文怎么样?"
CXmlNode@@1@1@()
LPCTSTR@@0@2@""$0
char@TCHAR$signed_char@0@5@-128$-1$0$1$127
//$$ END
**************************************************/


/**************************************************
作    者:user1
建立日期:2006-7-21
修改日期:
说    明:测试文件,用于测试[CXmlNode]。
**************************************************/

#include "stdafx.h"
//
/////////////////////////////////////////////////////////////////////////////
#include "CXmlNodeTester.h"

//
/////////////////////////////////////////////////////////////////////////////

void CXmlNodeTester::ClassTest()
{
    TEST_SOURCE_NAME(XmlNode.cpp);
    CUSTOM_TEST(CXmlNode);
 
    //$$
    TEST_CALL_BEGIN(CXmlNode,1,0)
    TEST_CALL1(GetFullText_CStringR())//GetFullText(CString&)
    TEST_CALL1(Init_CXmlNodeP_LPCTSTR())//Init(CXmlNode*,LPCTSTR)
    TEST_CALL1(GetNodesCount_())//GetNodesCount()
    TEST_CALL1(AddChildNode_CXmlNodeP())//AddChildNode(CXmlNode*)
    TEST_CALL1(SetContent_LPCTSTR())//SetContent(LPCTSTR)
    TEST_CALL_END()
    //$$
}

//
/////////////////////////////////////////////////////////////////////////////

CXmlNodeTester::CXmlNodeTester()
{
    pObj = 0;
}

CXmlNodeTester::~CXmlNodeTester()
{

}

void CXmlNodeTester::BeginCase(int arg)
{
    switch(arg)
    {

    case ARG_DEFAULT:
    {
        pObj = new TESTCLASS();
        break;
    }
    /*
    case :
    {
        pObj = new TESTCLASS();
        break;
    }
    case :
    {
        pObj = new TESTCLASS();
        break;
    }
    */

    }
}

void CXmlNodeTester::EndCase(int /*arg*/)
{
    delete pObj;
    pObj = 0;
}

//自定义测试,用MY_ASSERT(布尔表达式)断言预期输出
/////////////////////////////////////////////////////////////////////////////

void CXmlNodeTester::CustomTest()
{

}

//
/////////////////////////////////////////////////////////////////////////////

void CXmlNodeTester::GetFullText_CStringR()
{
    TEST_BEGIN(CXmlNode::GetFullText(CString&));

    //$$CASE_BEGIN(GetFullText_CStringR())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "abcde";
    pObj->mTagEnd = "</Tag>";
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n<Tag>abcde</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-7-21 2:25:35]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mDeep = 1;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "abcde";
    pObj->mTagEnd = "</Tag>";
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n<Tag>abcde</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-7-21 11:31:11]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mDeep = 2;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "abcde";
    pObj->mTagEnd = "</Tag>";
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n\t<Tag>abcde</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [3] [正常] [2006-7-21 11:34:16]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mDeep = 2;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "";
    pObj->mTagEnd = "</Tag>";
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n\t<Tag>\n\t</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [4] [正常] [2006-7-21 14:58:58]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "abcde";
    pObj->mTagEnd = "</Tag>";
    CXmlNode* pChild = new CXmlNode();
    pChild->SetTagBegin("<child>");
    pChild->SetTagEnd("</child>");
    pObj->AddChildNode(pChild); //被测试对象会自动删除;
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n<Tag>abcde\n<child>\n</child></Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [5] [正常] [2006-9-28 19:30:38]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mDeep = 3;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "";
    pObj->mTagEnd = "</Tag>";
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n\t\t<Tag>\n\t\t</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [6] [正常] [2006-7-21 14:59:37]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mDeep = 2;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "";
    pObj->mTagEnd = "</Tag>";
    CXmlNode* pChild = new CXmlNode();
    pChild->SetTagBegin("<child>");
    pChild->SetTagEnd("</child>");
    pObj->AddChildNode(pChild); //被测试对象会自动删除;
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n\t<Tag>\n<child>\n</child>\n\t</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [7] [正常] [2006-9-28 22:12:23]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "";
    pObj->mTagEnd = "</Tag>";
    CXmlNode* pChild = new CXmlNode();
    pChild->SetTagBegin("<child>");
    pChild->SetTagEnd("</child>");
    pObj->AddChildNode(pChild); //被测试对象会自动删除;
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n<Tag>\n<child>\n</child>\n</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [8] [正常] [2006-9-28 22:12:30]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "";
    pObj->mTagEnd = "</Tag>";
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n<Tag>\n</Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [9] [正常] [2006-9-28 22:12:50]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CString oText;
    pObj->mDeep = 2;
    pObj->mTagBegin = "<Tag>";
    pObj->mContent = "aa";
    pObj->mTagEnd = "</Tag>";
    CXmlNode* pChild = new CXmlNode();
    pChild->SetTagBegin("<child>");
    pChild->SetTagEnd("</child>");
    pObj->AddChildNode(pChild); //被测试对象会自动删除;
    TEST_RUN( pObj->GetFullText(oText) );
    TEST_ASSERT( oText == "\n\t<Tag>aa\n<child>\n</child></Tag>" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [10] [正常] [2006-9-28 22:13:5]

    BVTEST_BEGIN_1(O,CString,oText,R,0)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    TEST_RUN( pObj->GetFullText(oText) );
    //TEST_ASSERT();
    BVTEST_END(O,1)
    //$$ [11] [自动] [2006-7-21 2:25:35]

    //$$CASE_END(GetFullText_CStringR())

    TEST_RATE(1000);
    TEST_END();
}
//$$GetFullText_CStringR()

void CXmlNodeTester::Init_CXmlNodeP_LPCTSTR()
{
    TEST_BEGIN(CXmlNode::Init(CXmlNode*,LPCTSTR));

    //$$CASE_BEGIN(Init_CXmlNodeP_LPCTSTR())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CXmlNode ipFatherNode;
    ipFatherNode.SetDeep(1);
    ipFatherNode.SetPath("<root>");
    ipFatherNode.SetTagBegin("<parent>");
    LPCTSTR iTagBegin      = "<Father>";
    TEST_RUN( pObj->Init(&ipFatherNode, iTagBegin) );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-7-21 11:8:29]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CXmlNode* ipFatherNode = NULL;
    LPCTSTR iTagBegin      = "<Root>";
    TEST_RUN( pObj->Init(ipFatherNode, iTagBegin) );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-7-21 11:14:43]

    BVTEST_BEGIN_2(O,CXmlNode,ipFatherNode,P,0,LPCTSTR,iTagBegin,R,0)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    TEST_RUN( pObj->Init(ipFatherNode, iTagBegin) );
    //TEST_ASSERT();
    BVTEST_END(O,2)
    //$$ [3] [自动] [2006-7-21 11:8:29]

    //$$CASE_END(Init_CXmlNodeP_LPCTSTR())

    TEST_RATE(1000);
    TEST_END();
}
//$$Init_CXmlNodeP_LPCTSTR()

void CXmlNodeTester::GetNodesCount_()
{
    TEST_BEGIN(CXmlNode::GetNodesCount());
    UINT ret;

    //$$CASE_BEGIN(GetNodesCount_())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    TEST_RUN( ret = pObj->GetNodesCount() );
    TEST_ASSERT( ret == 1 );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-7-21 15:7:46]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CXmlNode* chi1 = new CXmlNode;
    CXmlNode* chi2 = new CXmlNode;
    chi1->SetTagBegin("<1>");
    chi2->SetTagBegin("<2>");
    pObj->AddChildNode(chi1);
    pObj->AddChildNode(chi2);
    TEST_RUN( ret = pObj->GetNodesCount() );
    TEST_ASSERT( ret == 3 );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-7-21 15:8:14]

    BVTEST_BEGIN_0(O)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    TEST_RUN( ret = pObj->GetNodesCount() );
    //TEST_ASSERT();
    BVTEST_END0(O)
    //$$ [3] [自动] [2006-7-21 15:7:46]

    //$$CASE_END(GetNodesCount_())

    TEST_RATE(1000);
    TEST_END();
}
//$$GetNodesCount_()

void CXmlNodeTester::AddChildNode_CXmlNodeP()
{
    TEST_BEGIN(CXmlNode::AddChildNode(CXmlNode*));
    BOOL ret;

    //$$CASE_BEGIN(AddChildNode_CXmlNodeP())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CXmlNode* pNewNode = new CXmlNode();
    TEST_RUN( ret = pObj->AddChildNode(pNewNode) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-7-22 9:53:20]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CXmlNode* pNewNode1 = new CXmlNode();
    pObj->AddChildNode(pNewNode1);
    CXmlNode* pNewNode = new CXmlNode();
    TEST_RUN( ret = pObj->AddChildNode(pNewNode) );
    TEST_ASSERT( ret == FALSE );
    delete pNewNode; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-9-28 17:34:17]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CXmlNode* pNewNode1 = new CXmlNode();
    pObj->AddChildNode(pNewNode1);
    CXmlNode* pNewNode = new CXmlNode();
    TEST_RUN( ret = pObj->AddChildNode(pNewNode) );
    TEST_ASSERT( ret == FALSE );
    delete pNewNode; //!
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [3] [正常] [2006-9-28 17:36:16]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    CXmlNode* pNewNode1 = new CXmlNode();
    pNewNode1->mTagBegin = "<root>";
    pObj->AddChildNode(pNewNode1);
    CXmlNode* pNewNode = new CXmlNode();
    TEST_RUN( ret = pObj->AddChildNode(pNewNode) );
    TEST_ASSERT( ret == TRUE );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [4] [正常] [2006-9-28 19:19:43]

    BVTEST_BEGIN_1(O,CXmlNode,pNewNode,P,0)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据;
    //由于被测试对象会自动删除传入的指针,所以不能使用非堆上生成的对象的针传;
    TEST_FILTER(pNewNode == NULL);
    TEST_RUN( ret = pObj->AddChildNode(pNewNode) );
    BVTEST_END(O,1)
    //$$ [5] [自动] [2006-7-22 9:53:20]

    //$$CASE_END(AddChildNode_CXmlNodeP())

    TEST_RATE(1000);
    TEST_END();
}
//$$AddChildNode_CXmlNodeP()



void CXmlNodeTester::SetContent_LPCTSTR()
{
    TEST_BEGIN(CXmlNode::SetContent(LPCTSTR));

    //$$CASE_BEGIN(SetContent_LPCTSTR())

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    LPCTSTR iContent  = "abcd";
    TEST_RUN( pObj->SetContent(iContent) );
    TEST_ASSERT( pObj->mContent == "abcd" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [1] [正常] [2006-9-28 22:35:27]

    /// 
    TEST_CASE_BEGINO( ARG_DEFAULT );
    LPCTSTR iContent  = "<abcd>";
    TEST_RUN( pObj->SetContent(iContent) );
    TEST_ASSERT( pObj->mContent == "&lt;abcd&gt;" );
    TEST_CASE_ENDO( ARG_DEFAULT );
    //$$ [2] [正常] [2006-9-28 22:36:0]

    BVTEST_BEGIN_1(O,LPCTSTR,iContent,R,0)
    //自动边界测试用例,可用TEST_FILTER()过滤输入数据
    //TEST_FILTER();
    TEST_RUN( pObj->SetContent(iContent) );
    //TEST_ASSERT();
    BVTEST_END(O,1)
    //$$ [3] [自动] [2006-9-28 22:35:27]

    //$$CASE_END(SetContent_LPCTSTR())

    TEST_RATE(1000);
    TEST_END();
}
//$$SetContent_LPCTSTR()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -