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

📄 alltests.cpp

📁 ICE-3.2 一个开源的中间件
💻 CPP
字号:
// **********************************************************************//// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.//// This copy of Ice is licensed to you under the terms described in the// ICE_LICENSE file included in this distribution.//// **********************************************************************#include <Ice/Ice.h>#include <TestCommon.h>#include <Test.h>using namespace std;using namespace Test;InitialPrxallTests(const Ice::CommunicatorPtr& communicator, bool collocated){    cout << "testing stringToProxy... " << flush;    string ref = "initial:default -p 12010 -t 10000";    Ice::ObjectPrx base = communicator->stringToProxy(ref);    test(base);    cout << "ok" << endl;    cout << "testing checked cast... " << flush;    InitialPrx initial = InitialPrx::checkedCast(base);    test(initial);    test(initial == base);    cout << "ok" << endl;    cout << "testing constructor, copy constructor, and assignment operator... " << flush;    BasePtr ba1 = new Base;    test(ba1->theS.str == "");    test(ba1->str == "");    S s;    s.str = "hello";    BasePtr ba2 = new Base(s, "hi");    test(ba2->theS.str == "hello");    test(ba2->str == "hi");    *ba1 = *ba2;    test(ba1->theS.str == "hello");    test(ba1->str == "hi");    BasePtr bp1 = new Base();    *bp1 = *ba2;    test(bp1->theS.str == "hello");    test(bp1->str == "hi");    cout << "ok" << endl;    cout << "getting B1... " << flush;    BPtr b1 = initial->getB1();    test(b1);    cout << "ok" << endl;        cout << "getting B2... " << flush;    BPtr b2 = initial->getB2();    test(b2);    cout << "ok" << endl;        cout << "getting C... " << flush;    CPtr c = initial->getC();    test(c);    cout << "ok" << endl;        cout << "getting D... " << flush;    DPtr d = initial->getD();    test(d);    cout << "ok" << endl;        cout << "checking consistency... " << flush;    test(b1 != b2);    test(b1 != c);    test(b1 != d);    test(b2 != c);    test(b2 != d);    test(c != d);    test(b1->theB == b1);    test(b1->theC == 0);    test(BPtr::dynamicCast(b1->theA));    test(BPtr::dynamicCast(b1->theA)->theA == b1->theA);    test(BPtr::dynamicCast(b1->theA)->theB == b1);    test(CPtr::dynamicCast(BPtr::dynamicCast(b1->theA)->theC));    test(CPtr::dynamicCast(BPtr::dynamicCast(b1->theA)->theC)->theB == b1->theA);    if(!collocated)    {        test(b1->preMarshalInvoked);        test(b1->postUnmarshalInvoked());        test(b1->theA->preMarshalInvoked);        test(b1->theA->postUnmarshalInvoked());        test(BPtr::dynamicCast(b1->theA)->theC->preMarshalInvoked);        test(BPtr::dynamicCast(b1->theA)->theC->postUnmarshalInvoked());    }    // More tests possible for b2 and d, but I think this is already sufficient.    test(b2->theA == b2);    test(d->theC == 0);    cout << "ok" << endl;    cout << "getting B1, B2, C, and D all at once... " << flush;    initial->getAll(b1, b2, c, d);    test(b1);    test(b2);    test(c);    test(d);    cout << "ok" << endl;        cout << "checking consistency... " << flush;    test(b1 != b2);    test(b1 != c);    test(b1 != d);    test(b2 != c);    test(b2 != d);    test(c != d);    test(b1->theA == b2);    test(b1->theB == b1);    test(b1->theC == 0);    test(b2->theA == b2);    test(b2->theB == b1);    test(b2->theC == c);    test(c->theB == b2);    test(d->theA == b1);    test(d->theB == b2);    test(d->theC == 0);    if(!collocated)    {        test(d->preMarshalInvoked);        test(d->postUnmarshalInvoked());        test(d->theA->preMarshalInvoked);        test(d->theA->postUnmarshalInvoked());        test(d->theB->preMarshalInvoked);        test(d->theB->postUnmarshalInvoked());        test(d->theB->theC->preMarshalInvoked);        test(d->theB->theC->postUnmarshalInvoked());    }    cout << "ok" << endl;    if(!collocated)    {        cout << "testing UnexpectedObjectException... " << flush;        ref = "uoet:default -p 12010 -t 10000";        base = communicator->stringToProxy(ref);        test(base);        UnexpectedObjectExceptionTestPrx uoet = UnexpectedObjectExceptionTestPrx::uncheckedCast(base);        test(uoet);        try        {            uoet->op();            test(false);        }        catch(const Ice::UnexpectedObjectException& ex)        {            test(ex.type == "::Test::AlsoEmpty");            test(ex.expectedType == "::Test::Empty");        }        catch(const Ice::Exception& ex)        {            cout << ex << endl;            test(false);        }        catch(...)        {            test(false);        }        cout << "ok" << endl;    }    return initial;}

⌨️ 快捷键说明

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