phoneclientserver/phoneclient/tsrc/public/basic/ut_ussd/ut_testenv.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:45:17 +0300
branchRCL_3
changeset 19 7d48bed6ce0c
permissions -rw-r--r--
Revision: 201033 Kit: 201035




// phoneclientengine
#include "cphsrvresourcemanager.h"
#include "cphsrvussdmanager.h"
#include <cphcltussd.h> // USSD API

// qt stuff
#include <QtTest/QtTest>

// unit test
#include "ut_testenv.h"

// globals
TestEnv* TestEnv::m_singleton = 0;

// ====================================================================
// EtelMsgLoop
// ====================================================================
EtelMsgLoop::EtelMsgLoop()
{
    mSendMessageReqStatus = 0;
    
    mReceiveMessageReqStatus = 0;
    mReceiveMessageData = 0;
    mReceiveMessageAttributes = 0;
    
    mNetworkReleaseReqStatus = 0;
    mNetworkReleaseMessageData = 0;
    mNetworkReleaseMessageAttributes = 0;
}

void EtelMsgLoop::receive( const TDesC8& msg, const TDesC8& attr )
{
    qDebug("EtelMsgLoop::receive mReceiveMessageReqStatus in =%d",
        mReceiveMessageReqStatus);
    mReceiveMessageData->Copy( msg );
    mReceiveMessageAttributes->Copy( attr );
    const TestMode& mode = TestEnv::env().testMode();
    User::RequestComplete(mReceiveMessageReqStatus, mode.m_error);
    qDebug("EtelMsgLoop::receive mReceiveMessageReqStatus out =%d",
        mReceiveMessageReqStatus);
    QVERIFY(mReceiveMessageReqStatus == 0);
}

void EtelMsgLoop::networkRelease( const TDesC8& msg, const TDesC8& attr )
{
    qDebug("EtelMsgLoop::networkRelease mNetworkReleaseReqStatus in =%d", 
        mNetworkReleaseReqStatus);
    mNetworkReleaseMessageData->Copy( msg );
    if ( mNetworkReleaseMessageAttributes )
        mNetworkReleaseMessageAttributes->Copy( attr );
        const TestMode& mode = TestEnv::env().testMode();
        User::RequestComplete(mNetworkReleaseReqStatus, mode.m_error);
    qDebug("EtelMsgLoop::networkRelease mNetworkReleaseReqStatus out =%d", 
        mNetworkReleaseReqStatus);
    QVERIFY(mNetworkReleaseReqStatus == 0);
}

// ====================================================================
// TestEnv
// ====================================================================

void TestEnv::create()
{
    QVERIFY(!m_singleton);
    m_singleton = new TestEnv();
    m_singleton->construct();
}

void TestEnv::destroy()
{
    QVERIFY(m_singleton);
    delete m_singleton;
    m_singleton = 0;
}

TestEnv& TestEnv::env()
{
    return *m_singleton;
}

TestEnv::TestEnv()
{
}

void TestEnv::construct()
{
    int leave;
    // create the main USSD resource manager class
    m_resourceManager = new CPhSrvResourceManager(m_fs);
    TRAP(leave, m_resourceManager->ConstructL());
    QVERIFY(leave == 0);
    m_ussdManager = new CPhSrvUssdManager(m_fs,*m_resourceManager);
    TRAP(leave,m_ussdManager->ConstructL(*this));
    QVERIFY(leave == 0);
    m_fakeMessage = new RMessage2();
}

TestEnv::~TestEnv()
{
    delete m_ussdManager;
    m_ussdManager = 0;
    delete m_resourceManager;
    m_resourceManager = 0;
    delete m_fakeMessage;
    m_fakeMessage = 0;
}


#define NULLREF(clz) *reinterpret_cast<clz*>((void*)0)

RTelServer& TestEnv::PhSrvETelServer()
    { return NULLREF(RTelServer); }

RMobilePhone& TestEnv::PhSrvMobilePhone()
    { return NULLREF(RMobilePhone); }

RMmCustomAPI& TestEnv::PhSrvCustomPhone()
    { return NULLREF(RMmCustomAPI); }




//End of file