phoneapp/phoneuistates/tsrc/ut_cphonegeneralgsmmessageshandler/src/ut_cphonegeneralgsmmessageshandler.cpp
author hgs
Fri, 17 Sep 2010 17:09:12 +0300
changeset 74 d1c62c765e48
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
74
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
/*
hgs
parents:
diff changeset
    18
-----------------------------------------------------------------------------
hgs
parents:
diff changeset
    19
This file has been generated with EUnit Pro
hgs
parents:
diff changeset
    20
http://www.digia.com/eunit
hgs
parents:
diff changeset
    21
-----------------------------------------------------------------------------
hgs
parents:
diff changeset
    22
*/
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
#include <coemain.h>
hgs
parents:
diff changeset
    25
#include <EUnitMacros.h>
hgs
parents:
diff changeset
    26
#include <EUnitDecorators.h>
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
#include <csmcmockcontext.h>
hgs
parents:
diff changeset
    29
#include <msmcmockspecbuilder.h>
hgs
parents:
diff changeset
    30
#include <pevirtualengine.h>
hgs
parents:
diff changeset
    31
hgs
parents:
diff changeset
    32
#include "ut_cphonegeneralgsmmessageshandler.h"
hgs
parents:
diff changeset
    33
#include "cphonegeneralgsmmessageshandler.h"
hgs
parents:
diff changeset
    34
#include "CPhoneStateMachineGSM.h"
hgs
parents:
diff changeset
    35
#include "mock_cphoneviewcommandhandle.h"
hgs
parents:
diff changeset
    36
#include "cphonemainresourceresolver.h"
hgs
parents:
diff changeset
    37
#include "cphonestate.h"
hgs
parents:
diff changeset
    38
#include "TPhoneCmdParamBoolean.h"
hgs
parents:
diff changeset
    39
#include "TPhoneCmdParamInteger.h"
hgs
parents:
diff changeset
    40
#include "TPhoneCmdParamKeyEvent.h"
hgs
parents:
diff changeset
    41
#include "TPhoneCmdParamGlobalNote.h"
hgs
parents:
diff changeset
    42
#include "TPhoneCmdParamKeyEvent.h"
hgs
parents:
diff changeset
    43
#include "apgtask.h"
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
// needed for mocking CPhoneMainResourceResolver::Instance()
hgs
parents:
diff changeset
    46
class CPhoneMainResourceResolverMock : public CPhoneMainResourceResolver
hgs
parents:
diff changeset
    47
    {
hgs
parents:
diff changeset
    48
    
hgs
parents:
diff changeset
    49
    };
hgs
parents:
diff changeset
    50
hgs
parents:
diff changeset
    51
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    52
// operator for comparing parameter expected and result value.
hgs
parents:
diff changeset
    53
// -
hgs
parents:
diff changeset
    54
// -----------------------------------------------------------------------------
hgs
parents:
diff changeset
    55
//
hgs
parents:
diff changeset
    56
// this is set true if there is no need check param id value.
hgs
parents:
diff changeset
    57
TBool doNotCheckParamId( EFalse );
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
TBool operator==(const TPhoneCommandParam& param1, const TPhoneCommandParam& param2 )
hgs
parents:
diff changeset
    60
    {
hgs
parents:
diff changeset
    61
    TBool ret( ETrue );
hgs
parents:
diff changeset
    62
    
hgs
parents:
diff changeset
    63
    if ( param1.ParamId() == param2.ParamId() )
hgs
parents:
diff changeset
    64
        {
hgs
parents:
diff changeset
    65
    
hgs
parents:
diff changeset
    66
        if ( TPhoneCommandParam::EPhoneParamIdInteger == param1.ParamId() )
hgs
parents:
diff changeset
    67
            {
hgs
parents:
diff changeset
    68
            const TPhoneCmdParamInteger  &value1 = static_cast<const TPhoneCmdParamInteger&> (param1);
hgs
parents:
diff changeset
    69
            const TPhoneCmdParamInteger  &value2 = static_cast<const TPhoneCmdParamInteger&> (param2);
hgs
parents:
diff changeset
    70
            if ( value1.Integer() != value2.Integer() )
hgs
parents:
diff changeset
    71
                {
hgs
parents:
diff changeset
    72
                ret = EFalse;
hgs
parents:
diff changeset
    73
                }
hgs
parents:
diff changeset
    74
            }/*
hgs
parents:
diff changeset
    75
        else if ( TPhoneCommandParam::EPhoneParamIdKeyEvent == param1.ParamId() )
hgs
parents:
diff changeset
    76
            {
hgs
parents:
diff changeset
    77
            const TPhoneCmdParamKeyEvent  &value1 = static_cast<const TPhoneCmdParamKeyEvent&> (param1);
hgs
parents:
diff changeset
    78
            const TPhoneCmdParamKeyEvent  &value2 = static_cast<const TPhoneCmdParamKeyEvent&> (param2);
hgs
parents:
diff changeset
    79
            if ( value1.EventCode() != value2.EventCode() )
hgs
parents:
diff changeset
    80
                {
hgs
parents:
diff changeset
    81
                ret = EFalse;
hgs
parents:
diff changeset
    82
                }
hgs
parents:
diff changeset
    83
            }*/
hgs
parents:
diff changeset
    84
        else if ( TPhoneCommandParam::EPhoneParamIdGlobalNote == param1.ParamId() )
hgs
parents:
diff changeset
    85
            {
hgs
parents:
diff changeset
    86
            const TPhoneCmdParamGlobalNote  &value1 = static_cast<const TPhoneCmdParamGlobalNote&> (param1);
hgs
parents:
diff changeset
    87
            const TPhoneCmdParamGlobalNote  &value2 = static_cast<const TPhoneCmdParamGlobalNote&> (param2);
hgs
parents:
diff changeset
    88
            if ( value1.Type() != value2.Type() )
hgs
parents:
diff changeset
    89
                {
hgs
parents:
diff changeset
    90
                ret = EFalse;
hgs
parents:
diff changeset
    91
                }
hgs
parents:
diff changeset
    92
            }
hgs
parents:
diff changeset
    93
        else if ( TPhoneCommandParam::EPhoneParamIdBoolean == param1.ParamId() && !doNotCheckParamId )
hgs
parents:
diff changeset
    94
            {
hgs
parents:
diff changeset
    95
            const TPhoneCmdParamBoolean  &value1 = static_cast<const TPhoneCmdParamBoolean&> (param1);
hgs
parents:
diff changeset
    96
            const TPhoneCmdParamBoolean  &value2 = static_cast<const TPhoneCmdParamBoolean&> (param2);
hgs
parents:
diff changeset
    97
            if ( value1.Boolean() != value2.Boolean() )
hgs
parents:
diff changeset
    98
                {
hgs
parents:
diff changeset
    99
                ret = EFalse;
hgs
parents:
diff changeset
   100
                }
hgs
parents:
diff changeset
   101
            } 
hgs
parents:
diff changeset
   102
        else
hgs
parents:
diff changeset
   103
            {
hgs
parents:
diff changeset
   104
            ret = ETrue;  // just paramiId compared
hgs
parents:
diff changeset
   105
            }
hgs
parents:
diff changeset
   106
        }
hgs
parents:
diff changeset
   107
    return ret;
hgs
parents:
diff changeset
   108
    }
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
// - Construction -----------------------------------------------------------
hgs
parents:
diff changeset
   111
hgs
parents:
diff changeset
   112
ut_cphonegeneralgsmmessageshandler* ut_cphonegeneralgsmmessageshandler::NewL()
hgs
parents:
diff changeset
   113
    {
hgs
parents:
diff changeset
   114
    ut_cphonegeneralgsmmessageshandler* self = ut_cphonegeneralgsmmessageshandler::NewLC();
hgs
parents:
diff changeset
   115
    CleanupStack::Pop();
hgs
parents:
diff changeset
   116
    return self;
hgs
parents:
diff changeset
   117
    }
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
ut_cphonegeneralgsmmessageshandler* ut_cphonegeneralgsmmessageshandler::NewLC()
hgs
parents:
diff changeset
   120
    {
hgs
parents:
diff changeset
   121
    ut_cphonegeneralgsmmessageshandler* self = new( ELeave ) ut_cphonegeneralgsmmessageshandler();
hgs
parents:
diff changeset
   122
    CleanupStack::PushL( self );
hgs
parents:
diff changeset
   123
    self->ConstructL();
hgs
parents:
diff changeset
   124
    return self;
hgs
parents:
diff changeset
   125
    }
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
ut_cphonegeneralgsmmessageshandler::~ut_cphonegeneralgsmmessageshandler()
hgs
parents:
diff changeset
   128
    {
hgs
parents:
diff changeset
   129
    CSmcMockContext::Release();
hgs
parents:
diff changeset
   130
    
hgs
parents:
diff changeset
   131
    delete iCoeEnvMock;
hgs
parents:
diff changeset
   132
    delete iCPhoneMainResourceResolverMock;
hgs
parents:
diff changeset
   133
    delete iViewCommandHandleMock;
hgs
parents:
diff changeset
   134
    delete iStateMachineMock;
hgs
parents:
diff changeset
   135
    }
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
ut_cphonegeneralgsmmessageshandler::ut_cphonegeneralgsmmessageshandler()
hgs
parents:
diff changeset
   138
    {
hgs
parents:
diff changeset
   139
    }
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
void ut_cphonegeneralgsmmessageshandler::ConstructL()
hgs
parents:
diff changeset
   142
    {
hgs
parents:
diff changeset
   143
    CEUnitTestSuiteClass::ConstructL();
hgs
parents:
diff changeset
   144
    iMockContext = CSmcMockContext::InstanceL();
hgs
parents:
diff changeset
   145
    }
hgs
parents:
diff changeset
   146
hgs
parents:
diff changeset
   147
// - Test methods -----------------------------------------------------------
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
hgs
parents:
diff changeset
   150
hgs
parents:
diff changeset
   151
void ut_cphonegeneralgsmmessageshandler::SetupL(  )
hgs
parents:
diff changeset
   152
    {
hgs
parents:
diff changeset
   153
    iMockContext->InitializeL();
hgs
parents:
diff changeset
   154
    
hgs
parents:
diff changeset
   155
    iCoeEnvMock = new ( ELeave ) CCoeEnv();
hgs
parents:
diff changeset
   156
    SmcDefaultValue<CCoeEnv*>::SetL( iCoeEnvMock );
hgs
parents:
diff changeset
   157
    CleanupResetDefaultValuePushL<SmcDefaultValue<CCoeEnv*> >();
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
    iCPhoneMainResourceResolverMock = new ( ELeave ) CPhoneMainResourceResolverMock();
hgs
parents:
diff changeset
   160
    SmcDefaultValue<CPhoneMainResourceResolver*>::SetL( iCPhoneMainResourceResolverMock );
hgs
parents:
diff changeset
   161
    
hgs
parents:
diff changeset
   162
    iViewCommandHandleMock = new CPhoneViewCommandHandleMock(); 
hgs
parents:
diff changeset
   163
    iStateMachineMock = CPhoneStateMachineGSM::NewL( iViewCommandHandleMock );
hgs
parents:
diff changeset
   164
    
hgs
parents:
diff changeset
   165
    iMockState = new (ELeave) CPhoneState( iStateMachineMock, NULL, NULL );
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
    iPhoneGeneralGsmMessagesHandler = CPhoneGeneralGsmMessagesHandler::NewL( 
hgs
parents:
diff changeset
   168
        *iStateMachineMock, *iViewCommandHandleMock, *iMockState );
hgs
parents:
diff changeset
   169
     
hgs
parents:
diff changeset
   170
    }
hgs
parents:
diff changeset
   171
    
hgs
parents:
diff changeset
   172
void ut_cphonegeneralgsmmessageshandler::Teardown(  )
hgs
parents:
diff changeset
   173
    {
hgs
parents:
diff changeset
   174
    delete iPhoneGeneralGsmMessagesHandler; 
hgs
parents:
diff changeset
   175
    iPhoneGeneralGsmMessagesHandler = NULL;
hgs
parents:
diff changeset
   176
    delete iMockState;
hgs
parents:
diff changeset
   177
    iMockState = NULL;
hgs
parents:
diff changeset
   178
    delete iStateMachineMock;
hgs
parents:
diff changeset
   179
    iStateMachineMock = NULL;
hgs
parents:
diff changeset
   180
    delete iViewCommandHandleMock;
hgs
parents:
diff changeset
   181
    iViewCommandHandleMock = NULL;
hgs
parents:
diff changeset
   182
    delete iCPhoneMainResourceResolverMock;
hgs
parents:
diff changeset
   183
    iCPhoneMainResourceResolverMock = NULL;
hgs
parents:
diff changeset
   184
    delete iCoeEnvMock;
hgs
parents:
diff changeset
   185
    iCoeEnvMock = NULL;  
hgs
parents:
diff changeset
   186
    CleanupStack::PopAndDestroy();
hgs
parents:
diff changeset
   187
    SmcDefaultValue<CPhoneMainResourceResolver*>::Reset();
hgs
parents:
diff changeset
   188
    iMockContext->Reset();
hgs
parents:
diff changeset
   189
    }
hgs
parents:
diff changeset
   190
    
hgs
parents:
diff changeset
   191
        
hgs
parents:
diff changeset
   192
void ut_cphonegeneralgsmmessageshandler::T_ConstructionL()
hgs
parents:
diff changeset
   193
    {
hgs
parents:
diff changeset
   194
    // SetupL and Teardown does the test. 
hgs
parents:
diff changeset
   195
    }
hgs
parents:
diff changeset
   196
    
hgs
parents:
diff changeset
   197
void ut_cphonegeneralgsmmessageshandler::T_HandlePhoneEngineMessageL_EPEMessageIssuingSSRequest_L()
hgs
parents:
diff changeset
   198
    {
hgs
parents:
diff changeset
   199
    iMockContext->ExpectCallL("CPhoneStateMachine::SendPhoneEngineMessage").WithL( MPEPhoneModel::EPEMessageEndDTMF );
hgs
parents:
diff changeset
   200
    
hgs
parents:
diff changeset
   201
    iMockContext->ExpectCallL("CPhoneViewCommandHandleMock::ExecuteCommandL").
hgs
parents:
diff changeset
   202
         WithL( EPhoneViewRemoveQuery );
hgs
parents:
diff changeset
   203
         
hgs
parents:
diff changeset
   204
    iPhoneGeneralGsmMessagesHandler->HandlePhoneEngineMessageL( MEngineMonitor::EPEMessageIssuingSSRequest, -1 );
hgs
parents:
diff changeset
   205
    
hgs
parents:
diff changeset
   206
    EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );    
hgs
parents:
diff changeset
   207
    }
hgs
parents:
diff changeset
   208
    
hgs
parents:
diff changeset
   209
void ut_cphonegeneralgsmmessageshandler::T_HandlePhoneEngineMessageL_EPEMessageIssuedSSRequest_L()
hgs
parents:
diff changeset
   210
    {    
hgs
parents:
diff changeset
   211
    iMockContext->ExpectCallL("CPhoneViewCommandHandleMock::ExecuteCommandL").TimesL(0);
hgs
parents:
diff changeset
   212
         
hgs
parents:
diff changeset
   213
    iPhoneGeneralGsmMessagesHandler->HandlePhoneEngineMessageL( MEngineMonitor::EPEMessageIssuedSSRequest, -1 );
hgs
parents:
diff changeset
   214
    EUNIT_ASSERT_EQUALS( KErrNone, iMockContext->VerifyExpectations() );    
hgs
parents:
diff changeset
   215
    }
hgs
parents:
diff changeset
   216
hgs
parents:
diff changeset
   217
// - EUnit test table -------------------------------------------------------
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
EUNIT_BEGIN_TEST_TABLE(
hgs
parents:
diff changeset
   220
    ut_cphonegeneralgsmmessageshandler,
hgs
parents:
diff changeset
   221
    "Add test suite description here.",
hgs
parents:
diff changeset
   222
    "UNIT" )
hgs
parents:
diff changeset
   223
    
hgs
parents:
diff changeset
   224
EUNIT_TEST(
hgs
parents:
diff changeset
   225
    "Construction",
hgs
parents:
diff changeset
   226
    "CPhoneGeneralGsmMessagesHandler",
hgs
parents:
diff changeset
   227
    "test1",
hgs
parents:
diff changeset
   228
    "FUNCTIONALITY",
hgs
parents:
diff changeset
   229
    SetupL, T_ConstructionL, Teardown)
hgs
parents:
diff changeset
   230
hgs
parents:
diff changeset
   231
EUNIT_TEST(
hgs
parents:
diff changeset
   232
    "HandlePhoneEngineMessageL EPEMessageIssuingSSRequest",
hgs
parents:
diff changeset
   233
    "CPhoneGeneralGsmMessagesHandler",
hgs
parents:
diff changeset
   234
    "test2",
hgs
parents:
diff changeset
   235
    "FUNCTIONALITY",
hgs
parents:
diff changeset
   236
    SetupL, T_HandlePhoneEngineMessageL_EPEMessageIssuingSSRequest_L, Teardown)
hgs
parents:
diff changeset
   237
hgs
parents:
diff changeset
   238
EUNIT_TEST(
hgs
parents:
diff changeset
   239
    "HandlePhoneEngineMessageL EPEMessageIssuedSSRequest",
hgs
parents:
diff changeset
   240
    "CPhoneGeneralGsmMessagesHandler",
hgs
parents:
diff changeset
   241
    "test2",
hgs
parents:
diff changeset
   242
    "FUNCTIONALITY",
hgs
parents:
diff changeset
   243
    SetupL, T_HandlePhoneEngineMessageL_EPEMessageIssuedSSRequest_L, Teardown)
hgs
parents:
diff changeset
   244
hgs
parents:
diff changeset
   245
EUNIT_END_TEST_TABLE