telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonefu.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 23 6b1d113cdff3
--- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonefu.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonefu.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,2552 +1,2552 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
-// All rights reserved.
-// This component and the accompanying materials are made available
-// under the terms of "Eclipse Public License v1.0"
-// which accompanies this distribution, and is available
-// at the URL "http://www.eclipse.org/legal/epl-v10.html".
-//
-// Initial Contributors:
-// Nokia Corporation - initial contribution.
-//
-// Contributors:
-//
-// Description:
-//
-
-
-
-/**
- @file The TEFUnit test suite for PhoneControl in the Common TSY.
-*/
-
-#include "cctsyphonefu.h"
-#include <etel.h>
-#include <etelmm.h>
-#include <et_clsvr.h>
-#include <ctsy/mmtsy_names.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#include <test/tmockltsydata.h>
-#include <ctsy/serviceapi/gsmerror.h>
-#include <ctsy/serviceapi/cmmutility.h>
-#include <ctsy/ltsy/mltsydispatchcallcontrolinterface.h>
-#include <ctsy/ltsy/mltsydispatchsiminterface.h>
-#include <ctsy/ltsy/mltsydispatchphoneinterface.h>
-#include <ctsy/ltsy/mltsydispatchpacketservicesinterface.h>
-#include <etelmmerr.h>
-#include "listretrieverao.h"
-#include "mockltsyindicatorids.h"
-#include <ctsy/rmmcustomapi.h>
-#include <ctsy/ltsy/mltsydispatchpacketservicesinterface.h>
-
-#include "cctsyactiveretriever.h"
-
-CTestSuite* CCTsyPhoneFU::CreateSuiteL(const TDesC& aName)
-	{
-	SUB_SUITE;
-
-	//add use-case tests
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0003L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0004L);
-  
-	//add other unit tests
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0003L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0006L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0007L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0008L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0009L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0010L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0011L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0012L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0013L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0014L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0015L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0016L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0017L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0018L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0019L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0020L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0021L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0022L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0023L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0024L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0025L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0026L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0027L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0028L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0029L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0030L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0031L);
-	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0032L);
-
-	END_SUITE;
-	}
-
-//
-// Use-case tests
-//
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Use-case: boot phone.  
-@SYMTestPriority High
-@SYMTestActions Invokes APIs to go through booting phone.
-@SYMTestExpectedResults Pass
-@SYMTestType CT
- */
-void CCTsyPhoneFU::TestUseCase0001L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	//simple boot phone use-case is actually incorporated as the OpenPhoneL() function.
-	OpenPhoneL();
-	AssertMockLtsyStatusL();
-
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Use-case:  manual network detection and selection
-@SYMTestPriority High
-@SYMTestActions Invokes APIs to go through detecting and selecting a network to register onto.
-@SYMTestExpectedResults Pass
-@SYMTestType CT
- */
-void CCTsyPhoneFU::TestUseCase0002L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	TRequestStatus status;
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	
-	/********************************Set network selection to manual***********************************/
-	
-	//set up the notified data
-	RMobilePhone::TMobilePhoneNetworkSelectionV1 notifiedPhoneNetworkSelection;
-	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg notifiedPckg(notifiedPhoneNetworkSelection);
-
-	//set up the set data
-	RMobilePhone::TMobilePhoneNetworkSelectionV1 phoneNetworkSelection;
-	phoneNetworkSelection.iMethod 			= RMobilePhone::ENetworkSelectionManual;
-	phoneNetworkSelection.iBandClass		= RMobilePhone::ENetworkBandClassAOnly;
-	phoneNetworkSelection.iOperationMode	= RMobilePhone::ENetworkOperationAnalogPreferred;
-
-	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg setPckg(phoneNetworkSelection);
-
-	//set up the Mock LTSY data
-	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkSelectionV1> phoneNetworkSelectionExpData(phoneNetworkSelection);
-	phoneNetworkSelectionExpData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, data, KErrNone);
-	data.Close();
-	
-	TMockLtsyData1<RMobilePhone::TMobilePhoneSelectionMethod> phoneNetworkSelectionCompData(phoneNetworkSelection.iMethod);
-	phoneNetworkSelectionCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, KErrNone, data);
-	data.Close();
-
-	//ETel calls
-	TRequestStatus notifyStatus;
-	iPhone.NotifyNetworkSelectionSettingChange(notifyStatus,notifiedPckg);
-	iPhone.SetNetworkSelectionSetting(status,setPckg);
-	
-	User::WaitForRequest(status);
-	User::WaitForRequest(notifyStatus);
-	ASSERT_EQUALS(status.Int(),KErrNone);
-	ASSERT_EQUALS(notifyStatus.Int(),KErrNone);
-	
-	//CTSY sets iBandClass and iOperationMode to defults values
-	ASSERT_EQUALS(phoneNetworkSelection.iMethod,notifiedPhoneNetworkSelection.iMethod);
-	ASSERT_EQUALS(RMobilePhone::ENetworkBandClassUnknown,notifiedPhoneNetworkSelection.iBandClass);
-	ASSERT_EQUALS(RMobilePhone::ENetworkOperationUnknown,notifiedPhoneNetworkSelection.iOperationMode);
-	AssertMockLtsyStatusL();
-	
-	/*********************************************************************************************/
-	
-	/********************************Get Detected Network List************************************/
-	
-	CGetDetectedNetworksAO* detAO = CGetDetectedNetworksAO::NewLC(iPhone,iMockLTSY);
-	
-	// --- prepare data for CompleteL ---
- 	CMobilePhoneNetworkListV2* networkListV2 = CMobilePhoneNetworkListV2::NewL();
-	CleanupStack::PushL(networkListV2);
-	
- 	RMobilePhone::TMobilePhoneNetworkInfoV2 infoV2;
-	
-	infoV2.iAccess      = RMobilePhone::ENetworkAccessUnknown;
-	infoV2.iMode        = RMobilePhone::ENetworkModeUnknown;
-	infoV2.iStatus      = RMobilePhone::ENetworkStatusUnknown;
-	infoV2.iBandInfo    = RMobilePhone::EBandUnknown;	
-	
-	_LIT(KCountryCode, "1234");
-	infoV2.iCountryCode = KCountryCode;
-
-	_LIT(KAnalogSID, "12345678");
-	infoV2.iAnalogSID   = KAnalogSID;
-
-	_LIT(KNetworkId, "12345678");
-	infoV2.iNetworkId   = KNetworkId;
-	
-	_LIT(KDisplayTag, "1234567890");
-	infoV2.iDisplayTag  = KDisplayTag;
-	
-	_LIT(KShortName, "1234567890");
-	infoV2.iShortName   = KShortName;
-
-	_LIT(KLongName, "12345678901234567890");
-	infoV2.iLongName    = KLongName;
-	
-	networkListV2->AddEntryL(infoV2);
-
-	//set up Mock LTSY expect and completes for a retrieve (not cancelled)
-    iMockLTSY.ExpectL(MLtsyDispatchPhoneGetDetectedNetworks::KLtsyDispatchPhoneGetDetectedNetworksApiId, KErrNone);
-
-    //execute the retrieve
-	detAO->TestRetrieveL(*networkListV2);
-
-	//check what has been returned 
-	ASSERT_EQUALS(detAO->CheckResultsL(),KErrNone);
-	
-	AssertMockLtsyStatusL();
-	
-	/*********************************************************************************************/
-
-	/********************************Manual Network Selection************************************/
-
-	//setup ETel required data
-	RMobilePhone::TMobilePhoneNetworkManualSelection selection;
-	selection.iCountry = KCountryCode;
-	selection.iNetwork = KNetworkId;
-
-	//setup MockTSY data
-	TBool isManual = ETrue;
-	TMockLtsyData2<TBool,RMobilePhone::TMobilePhoneNetworkManualSelection> selectData(isManual,selection);
-    selectData.SerialiseL(data);
-	
-	//set up Mock LTSY expect and completes for a retrieve (not cancelled)
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSelectNetwork::KLtsyDispatchPhoneSelectNetworkApiId, data, KErrNone);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSelectNetwork::KLtsyDispatchPhoneSelectNetworkApiId, KErrNone);
-	data.Close();
-	
-	//ETel calls
-	iPhone.SelectNetwork(status,isManual,selection);
-	User::WaitForRequest(status);
-
-	AssertMockLtsyStatusL();
-	/*********************************************************************************************/
-	
-	CleanupStack::PopAndDestroy(networkListV2);
-	CleanupStack::PopAndDestroy(detAO);
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-	
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Use-case: Network notifications at boot-up. 
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::NotifyModeChange, RMobilePhone::NotifyNITZInfoChange, RMobilePhone::NotifySignalStrengthChange  
-@SYMTestExpectedResults Pass
-@SYMTestType CT
- */
-void CCTsyPhoneFU::TestUseCase0003L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	TRequestStatus requestStatus1, requestStatus2, requestStatus3, requestStatus4, requestStatus5;
-	TRequestStatus mockLtsyStatus;
-	
-	//
-	// Post all the notifiers.
-	//
-	
-	// RMobilePhone::NotifyCurrentNetworkChange
-	RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfoRet;
-	TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> networkInfoRetPckg(networkInfoRet);
-	RMobilePhone::TMobilePhoneLocationAreaV1 locationAreaRet;
-	iPhone.NotifyCurrentNetworkChange(requestStatus1, networkInfoRetPckg, locationAreaRet);
-	
-	// RMobilePhone::NotifyNetworkModeChange
-	RMobilePhone::TMobilePhoneNetworkMode networkModeRet;
-	iPhone.NotifyModeChange(requestStatus2, networkModeRet);
-	
-	// RMobilePhone::NotifyNitzInfoChange
-	RMobilePhone::TMobilePhoneNITZ nitzRet;
-	iPhone.NotifyNITZInfoChange(requestStatus3, nitzRet);
-	
-	// RMobilePhone::NotifySignalStrengthChange
-	TInt32 signalStrength(0);
-	TInt8 bar(0);
-	iPhone.NotifySignalStrengthChange(requestStatus4, signalStrength, bar);
-	
-	// RMobilePhone::NotifyBatteryInfoChange
-	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoRet;
-	iPhone.NotifyBatteryInfoChange(requestStatus5, battInfoRet);
-	
-	/*
-	 * RMobilePhone::NotifyCurrentNetworkChange
-	 */
-
-	// Prepare the NotifyCurrentNetworkChange data for CompleteL
-	RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfoComplete;
-	
-    RMobilePhone::TMobilePhoneNetworkCountryCode countryCode = _L("567");
-    RMobilePhone::TMobilePhoneNetworkIdentity    cdmaSID     = _L("890");
-    RMobilePhone::TMobilePhoneNetworkIdentity    analogSID   = _L("123");
-    RMobilePhone::TMobilePhoneNetworkIdentity    networkId   = _L("56700");
-    RMobilePhone::TMobilePhoneNetworkDisplayTag  displayTag  = _L("symbian2");
-    RMobilePhone::TMobilePhoneNetworkShortName   shortName   = _L("symbian2");
-    RMobilePhone::TMobilePhoneNetworkLongName    longName    = _L("symbian2 mobile");
-
-	// V5
-	networkInfoComplete.iEgprsAvailableIndicator = ETrue;
-	networkInfoComplete.iHsdpaAvailableIndicator = EFalse;
-	// V2
-	networkInfoComplete.iAccess = RMobilePhone::ENetworkAccessGsm;
-	// V1
-	networkInfoComplete.iMode        = RMobilePhone::ENetworkModeCdma2000   ;
-	networkInfoComplete.iStatus      = RMobilePhone::ENetworkStatusAvailable;
-	networkInfoComplete.iBandInfo    = RMobilePhone::E1900BandA             ;
-	networkInfoComplete.iCountryCode = countryCode;
-	networkInfoComplete.iCdmaSID     = cdmaSID    ;
-	networkInfoComplete.iAnalogSID   = analogSID  ;
-	networkInfoComplete.iNetworkId   = networkId  ;
-	networkInfoComplete.iDisplayTag  = displayTag ;
-	networkInfoComplete.iShortName   = shortName  ;
-	networkInfoComplete.iLongName    = longName   ;
-	
-	RMobilePhone::TMobilePhoneLocationAreaV1 locationAreaComplete;
-	locationAreaComplete.iAreaKnown = ETrue;
-	locationAreaComplete.iLocationAreaCode = KLocationAreaCode;
-	locationAreaComplete.iCellId = KCellId;
-	
-    TMockLtsyData2<RMobilePhone::TMobilePhoneNetworkInfoV5, 
-                   RMobilePhone::TMobilePhoneLocationAreaV1> mockCNCData2(networkInfoComplete, locationAreaComplete);
-    
-	// Send the CompleteL to MockLtsy
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	
-	data.Close();
-	mockCNCData2.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCurrentNetworkChangeIndId, KErrNone, data);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    
-    // Check completion of api
-    User::WaitForRequest(requestStatus1);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus1.Int());
-
-    // Check returned data
-    ASSERT_EQUALS(networkInfoRet.iMode, networkInfoComplete.iMode);
-    ASSERT_EQUALS(networkInfoRet.iStatus, networkInfoComplete.iStatus);
-    ASSERT_EQUALS(networkInfoRet.iBandInfo, networkInfoComplete.iBandInfo);
-    ASSERT_EQUALS(networkInfoRet.iCountryCode, networkInfoComplete.iCountryCode);
-    ASSERT_EQUALS(networkInfoRet.iCdmaSID, networkInfoComplete.iCdmaSID);
-    ASSERT_EQUALS(networkInfoRet.iAnalogSID, networkInfoComplete.iAnalogSID);
-    ASSERT_EQUALS(networkInfoRet.iNetworkId, networkInfoComplete.iNetworkId);
-    ASSERT_EQUALS(networkInfoComplete.iDisplayTag, networkInfoComplete.iDisplayTag);
-    ASSERT_EQUALS(networkInfoComplete.iShortName, networkInfoComplete.iShortName);
-    ASSERT_EQUALS(networkInfoComplete.iLongName, networkInfoComplete.iLongName);
-
-    ASSERT_EQUALS(locationAreaRet.iAreaKnown, locationAreaComplete.iAreaKnown);
-    ASSERT_EQUALS(locationAreaRet.iLocationAreaCode, locationAreaComplete.iLocationAreaCode);
-    ASSERT_EQUALS(locationAreaRet.iCellId, locationAreaComplete.iCellId);
-    
-	/*
-	 * RMobilePhone::NotifyNetworkModeChange
-	 */
-    
-	// Prepare the NotifyNetworkModeChange data for CompleteL
-    RMobilePhone::TMobilePhoneNetworkMode networkModeComplete;
-    
-    networkModeComplete = RMobilePhone::ENetworkModeCdma95;
-
-    TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkMode> mockNMCData1(networkModeComplete);
-    
-	// Send the CompleteL to MockLtsy
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	
-	data.Close();
-	mockNMCData1.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkModeChangeIndId, KErrNone, data);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    
-    // Check completion of api
-    User::WaitForRequest(requestStatus2);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-    
-    // Check returned data
-    ASSERT_EQUALS(networkModeRet, networkModeComplete);
-    
-	/*
-	 * RMobilePhone::NotifyNitzInfoChange
-	 */
-    
-    // Prepare the NotifyNetworkModeChange data for CompleteL
-    RMobilePhone::TMobilePhoneNITZ nitzComplete(2007, EOctober, 18, 16,  0,  0, 0);
-    
-	RMobilePhone::TMobilePhoneNetworkShortName mobilePhoneNetworkShortName = _L("ShortName");
-	RMobilePhone::TMobilePhoneNetworkLongName mobilePhoneNetworkLongName = _L("MyLongName");
-	TInt32 nitzFieldsUsed = RMobilePhone::KCapsTimeAvailable |
-							RMobilePhone::KCapsTimezoneAvailable |
-							RMobilePhone::KCapsDSTAvailable |
-							RMobilePhone::KCapsShortNameAvailable |
-							RMobilePhone::KCapsLongNameAvailable;
-	
-	TInt timeZone = 10;
-	TInt DST = 5;
-	
-	nitzComplete.iShortNetworkId = mobilePhoneNetworkShortName;
-	nitzComplete.iLongNetworkId = mobilePhoneNetworkLongName;
-	nitzComplete.iNitzFieldsUsed = nitzFieldsUsed;
-	nitzComplete.iTimeZone = timeZone;
-	nitzComplete.iDST = DST;
-	
-	TMockLtsyData1<RMobilePhone::TMobilePhoneNITZ> mockNitzData1(nitzComplete);
-	
-	// Send the CompleteL to MockLtsy
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	
-	data.Close();
-	mockNitzData1.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNitzInfoChangeIndId, KErrNone, data);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    
-    // Check completion of api
-    User::WaitForRequest(requestStatus3);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus3.Int());
-    
-    // Check returned data
-    ASSERT_EQUALS(nitzRet.iNitzFieldsUsed, nitzComplete.iNitzFieldsUsed);
-    ASSERT_EQUALS(nitzRet.iTimeZone, nitzComplete.iTimeZone);
-    ASSERT_EQUALS(nitzRet.iDST, nitzComplete.iDST);
-    // Note: CTSY will overwrite the iShortNetworkId and iLongNetworkId fields in the NITZ data
-    // if it all ready holds values for them from previous notifications (such as a NotifyCurrentNetworkChange).
-    // We therefore compare with values from a TMobilePhoneNetworkInfoV5 which was received earlier in the test.
-    ASSERT_EQUALS(nitzRet.iShortNetworkId, networkInfoComplete.iShortName);
-    ASSERT_EQUALS(nitzRet.iLongNetworkId, networkInfoComplete.iLongName);
-    
-	/*
-	 * RMobilePhone::NotifySignalStrengthChange
-	 */
-    
-    // Prepare the NotifySignalStrengthChange data for CompleteL
-	TInt32 signalStrengthComplete(70);
-	TInt8 barComplete(3);
-	
-	TMockLtsyData2<TInt32, TInt8> mockSigSthData2(signalStrengthComplete, barComplete);
-	
-	// Send the CompleteL to MockLtsy
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	
-	data.Close();
-	mockSigSthData2.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifySignalStrengthChangeIndId, KErrNone, data);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    
-    // Check completion of api
-    User::WaitForRequest(requestStatus4);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus4.Int());
-    
-    // Check returned data
-    ASSERT_EQUALS(signalStrength, signalStrengthComplete);
-    ASSERT_EQUALS(bar, barComplete);
-    
-	/*
-	 * RMobilePhone::NotifyBatteryInfoChange
-	 */
-    
-    // Prepare the NotifyBatteryInfoChange data for CompleteL
-    RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoComplete;
-    battInfoComplete.iStatus = RMobilePhone::EBatteryConnectedButExternallyPowered;
-    battInfoComplete.iChargeLevel = 99;
-    
-    TMockLtsyData1<RMobilePhone::TMobilePhoneBatteryInfoV1> mockBattData1(battInfoComplete);
-
-	// Send the CompleteL to MockLtsy
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	
-	data.Close();
-	mockBattData1.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyBatteryInfoChangeIndId, KErrNone, data);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    
-    // Check completion of api
-    User::WaitForRequest(requestStatus5);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus5.Int());
-    
-    // Check returned data
-    ASSERT_EQUALS(battInfoRet.iStatus, battInfoComplete.iStatus);
-    ASSERT_EQUALS(battInfoRet.iChargeLevel, battInfoComplete.iChargeLevel);
-    
-	data.Close();
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Use-case: Test for retrieval of network information without having to post notifiers. 
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::GetCurrentNetwork, RMobilePhone::GetNITZInfo, RMobilePhone::GetSignalStrength, RMobilePhone::GetCurrentMode
-@SYMTestExpectedResults Pass
-@SYMTestType CT
- */
-void CCTsyPhoneFU::TestUseCase0004L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	TRequestStatus reqStatusGetCurrentNetwork;
-	TRequestStatus reqStatusGetSigStr;
-	TRequestStatus reqStatusGetBattInfo;
-	TInt ret;
-	
-	//
-	// Invoke get api's 
-	//
-	
-	// RMobilePhone::GetCurrentNetwork
-	RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfo;
-	RMobilePhone::TMobilePhoneNetworkInfoV5Pckg networkInfoPckg(networkInfo);
-	RMobilePhone::TMobilePhoneLocationAreaV1 locationArea;
-	iPhone.GetCurrentNetwork(reqStatusGetCurrentNetwork, networkInfoPckg, locationArea);
-	
-	// RMobilePhone::GetNITZInfo
-	RMobilePhone::TMobilePhoneNITZ nitzRet;
-	ret = iPhone.GetNITZInfo(nitzRet);
-	ASSERT_EQUALS(ret, KErrNone);
-
-	// RMobilePhone::GetSignalStrength
-	TInt32 signalStrength(0);
-	TInt8 bar(0);
-	iPhone.GetSignalStrength(reqStatusGetSigStr, signalStrength, bar);
-	
-	// RMobilePhone::GetCurrentMode
-	RMobilePhone::TMobilePhoneNetworkMode mode;
-	ret = iPhone.GetCurrentMode(mode);
-	ASSERT_EQUALS(ret, KErrNone);
-	
-	// RMobilePhone::GetBatteryInfo
-	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfo;
-	iPhone.GetBatteryInfo(reqStatusGetBattInfo, battInfo);
-
-	//
-	// Check returned values
-	//
-	
-	// Check RMobilePhone::GetCurrentMode returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
-	ASSERT_EQUALS(mode, KNetworkMode);  // Note mode is given different value to that retrieved from GetCurrentNetwork for sake of the test.
-	
-	// Check RMobilePhone::GetCurrentNetwork returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
-	User::WaitForRequest(reqStatusGetCurrentNetwork);
-	ASSERT_EQUALS(reqStatusGetCurrentNetwork.Int(), KErrNone);
-	ASSERT_EQUALS(networkInfo.iEgprsAvailableIndicator, KEgprsAvailable);
-	ASSERT_EQUALS(networkInfo.iHsdpaAvailableIndicator, KHsdpaAvailable);
-	ASSERT_EQUALS(networkInfo.iAccess, KAccess);
-	ASSERT_EQUALS(networkInfo.iMode, KMode);
-	ASSERT_EQUALS(networkInfo.iStatus, KStatus);
-	ASSERT_EQUALS(networkInfo.iBandInfo, KBandInfo);
-	ASSERT_EQUALS(networkInfo.iCountryCode, KCountryCode);
-	ASSERT_EQUALS(networkInfo.iCdmaSID, KCdmaSID);
-	ASSERT_EQUALS(networkInfo.iAnalogSID, KAnalogSID);
-	ASSERT_EQUALS(networkInfo.iNetworkId, KNetworkId);
-	ASSERT_EQUALS(networkInfo.iDisplayTag, KDisplayTag);
-	ASSERT_EQUALS(networkInfo.iShortName, KShortName);
-	ASSERT_EQUALS(networkInfo.iLongName, KLongName);
-	
-	ASSERT_EQUALS(locationArea.iAreaKnown, KAreaKnown);
-	ASSERT_EQUALS(locationArea.iLocationAreaCode, KLocationAreaCode);
-	ASSERT_EQUALS(locationArea.iCellId, KCellId);
-	
-	//Do tests for TMobilePhoneNetworkInfoV1 and TMobilePhoneNetworkInfoV2 ?
-	
-	// Check RMobilePhone::GetNITZInfo returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
-	ASSERT_EQUALS(nitzRet.iShortNetworkId, KShortName);
-	ASSERT_EQUALS(nitzRet.iLongNetworkId, KLongName);
-	ASSERT_EQUALS(nitzRet.iNitzFieldsUsed, KNitzFieldsUsed);
-	ASSERT_EQUALS(nitzRet.iTimeZone, KTimeZone);
-	ASSERT_EQUALS(nitzRet.iDST, KDst);
-	
-	// Check RMobilePhone::GetSignalStrength returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
-	// RMobilePhone::GetSignalStrength
-	User::WaitForRequest(reqStatusGetSigStr);
-	ASSERT_EQUALS(reqStatusGetSigStr.Int(), KErrNone);
-	ASSERT_EQUALS(signalStrength, KSignalStrength);
-	ASSERT_EQUALS(bar, KBar);
-	
-	// Check RMobilePhone::GetBatteryInfo returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
-	User::WaitForRequest(reqStatusGetBattInfo);
-	ASSERT_EQUALS(reqStatusGetBattInfo.Int(), KErrNone);
-	ASSERT_EQUALS(battInfo.iStatus, KBatteryStatus); 
-	ASSERT_EQUALS(battInfo.iChargeLevel, KBatteryChargeLevel);
-	
-	data.Close();
-	
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	}
-
-
-
-//
-// Other unit tests
-//
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0001
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for receiving indication of RF status change.
-@SYMTestPriority High
-@SYMTestActions Invokes xxxx
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0001L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	TRequestStatus mockLtsyStatus;
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-		
-	TRfStateInfo rfstatus = ERfsStateInfoInactive;
-	TMockLtsyData1<TRfStateInfo> rfstatdata(rfstatus);
-	rfstatdata.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyRfStatusChangeIndId,KErrNone, data, 0);
-	
-	User::WaitForRequest(mockLtsyStatus);
-	
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	
-	}
-	
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0002
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for retrieving the Phone Identity
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::GetPhoneId
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0002L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RBuf8 data;
-	CleanupClosePushL(data);	
-
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetPhoneId::KLtsyDispatchPhoneGetPhoneIdApiId);
-	
-	_LIT(KManufacturer, "Manufacturer XYZ");
-	_LIT(KModel, "Model XYZ");	
-	_LIT(KRevision, "Revision abc");
-	_LIT(KSerialNumber, "SerialNumber 1234");
-	//_LIT(KSerialNumberShort15, "SNum 1234");
-	
-	RMobilePhone::TMobilePhoneIdentityV1 phoneId;
-	phoneId.iManufacturer = KManufacturer;
-	phoneId.iModel = KModel;
-	phoneId.iRevision = KRevision;
-	phoneId.iSerialNumber = KSerialNumber;
-	
-	TMockLtsyData1<RMobilePhone::TMobilePhoneIdentityV1> phoneIdData(phoneId);
-	data.Close();
-	phoneIdData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetPhoneId::KLtsyDispatchPhoneGetPhoneIdApiId, KErrNone, data);
-	
-	// IPC call
-	TRequestStatus reqStatus;
-	RMobilePhone::TMobilePhoneIdentityV1 id;
-	iPhone.GetPhoneId(reqStatus, id);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(KErrNone, reqStatus.Int());
-	
-	ASSERT_EQUALS(phoneId.iManufacturer, id.iManufacturer);
-	ASSERT_EQUALS(phoneId.iModel, id.iModel);
-	ASSERT_EQUALS(phoneId.iRevision, id.iRevision);
-	ASSERT_EQUALS(phoneId.iSerialNumber, id.iSerialNumber);
-
-	data.Close();
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	}
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0003
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for retrieving the service provider name
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::GetServiceProviderName
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0003L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RBuf8 data;
-	CleanupClosePushL(data);	
-
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetServiceProviderName::KLtsyDispatchPhoneGetServiceProviderNameApiId);
-	
-	_LIT(KPLMNField, "plmn123");
-	_LIT(KSPName, "spn123");
-		
-	RMobilePhone::TMobilePhoneServiceProviderNameV2 spnExp;
-	spnExp.iDisplayReq = RMobilePhone::KDisplayPLMNRequired | RMobilePhone::KDisplaySPNRequired;
-	spnExp.iPLMNField  = KPLMNField;
-	spnExp.iSPName = KSPName;
-	
-	TMockLtsyData1<RMobilePhone::TMobilePhoneServiceProviderNameV2> spnData(spnExp);
-	data.Close();
-	spnData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetServiceProviderName::KLtsyDispatchPhoneGetServiceProviderNameApiId, KErrNone, data);
-	
-	// IPC call
-	TRequestStatus reqStatus;
-	RMobilePhone::TMobilePhoneServiceProviderNameV2 spn;
-	RMobilePhone::TMobilePhoneServiceProviderNameV2Pckg spnPkg(spn);
-	
-	iPhone.GetServiceProviderName(reqStatus, spnPkg);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(KErrNone, reqStatus.Int());	
-	ASSERT_EQUALS(spn.iDisplayReq, spnExp.iDisplayReq);
-	ASSERT_EQUALS(spn.iPLMNField, spnExp.iPLMNField);
-	ASSERT_EQUALS(spn.iSPName, spnExp.iSPName);
-		
-	data.Close();
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0004
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling a Get detected network list
-@SYMTestPriority High
-@SYMTestActions Invokes CGetDetectedNetworksAO::Cancel
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0004L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	CGetDetectedNetworksAO* detAO = CGetDetectedNetworksAO::NewLC(iPhone,iMockLTSY);
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetDetectedNetworks::KLtsyDispatchPhoneGetDetectedNetworksApiId, KErrNone);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetDetectedNetworksCancel::KLtsyDispatchPhoneGetDetectedNetworksCancelApiId, KErrNone);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetDetectedNetworksCancel::KLtsyDispatchPhoneGetDetectedNetworksCancelApiId, KErrNone);
-
-	detAO->TestCancel();
-	
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(detAO);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0005
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling for a manual network selection
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::CancelAsyncRequest(EMobilePhoneSelectNetwork)
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0005L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	//setup ETel required data
-	_LIT(KCountryCode, "1234");
-	_LIT(KNetworkId, "12345678");
-
-	RMobilePhone::TMobilePhoneNetworkManualSelection selection;
-	selection.iCountry = KCountryCode;
-	selection.iNetwork = KNetworkId;
-	
-	TBool isManual = ETrue;
-	
-    TMockLtsyData2<TBool,RMobilePhone::TMobilePhoneNetworkManualSelection> selectData(isManual,selection);
-
-    selectData.SerialiseL(data);
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSelectNetwork::KLtsyDispatchPhoneSelectNetworkApiId, data, KErrNone);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSelectNetworkCancel::KLtsyDispatchPhoneSelectNetworkCancelApiId, KErrNone);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSelectNetworkCancel::KLtsyDispatchPhoneSelectNetworkCancelApiId, KErrNone);
-
-	TRequestStatus status;
-	iPhone.SelectNetwork(status,isManual,selection);
-	iPhone.CancelAsyncRequest(EMobilePhoneSelectNetwork);
-	User::WaitForRequest(status);	
-	
-	AssertMockLtsyStatusL();
-
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0006
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY network selection change notification
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::NotifyNetworkSelectionSettingChange
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0006L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-	//set up the set data
-	RMobilePhone::TMobilePhoneSelectionMethod phoneNetworkSelection;
-	phoneNetworkSelection = RMobilePhone::ENetworkSelectionManual;
-
-	//set up the Mock LTSY data
-	TMockLtsyData1<RMobilePhone::TMobilePhoneSelectionMethod> phoneNetworkSelectionData(phoneNetworkSelection);
-	phoneNetworkSelectionData.SerialiseL(data);
-	//set up Mock LTSY expect and completes 
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkSelectionSettingChangeIndId, KErrNone, data);
-	
-	//ETel calls
-	TRequestStatus status;
-	//set up the notified data
-	RMobilePhone::TMobilePhoneNetworkSelectionV1 notifiedPhoneNetworkSelection;
-	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg notifiedPckg(notifiedPhoneNetworkSelection);
-	iPhone.NotifyNetworkSelectionSettingChange(status,notifiedPckg);
-
-	User::WaitForRequest(status);
-	
-	//CTSY sets iBandClass and iOperationMode to defults values
-	ASSERT_EQUALS(phoneNetworkSelection,notifiedPhoneNetworkSelection.iMethod);
-	ASSERT_EQUALS(RMobilePhone::ENetworkBandClassUnknown,notifiedPhoneNetworkSelection.iBandClass);
-	ASSERT_EQUALS(RMobilePhone::ENetworkOperationUnknown,notifiedPhoneNetworkSelection.iOperationMode);
-	AssertMockLtsyStatusL();
-	
-	
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0007
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support for battery information change notification.
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::NotifyBatteryInfoChange
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0007L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-	TRequestStatus mockLtsyStatus;
-	TRequestStatus requestStatus;
-	
-	// Post notifier RMobilePhone::NotifyBatteryInfoChange
-	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoRet;
-	iPhone.NotifyBatteryInfoChange(requestStatus, battInfoRet);
-	
-    // Prepare the NotifyBatteryInfoChange data for CompleteL
-    RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoComplete;
-    battInfoComplete.iStatus = RMobilePhone::EBatteryConnectedButExternallyPowered;
-    battInfoComplete.iChargeLevel = 99;
-    
-    TMockLtsyData1<RMobilePhone::TMobilePhoneBatteryInfoV1> mockBattData1(battInfoComplete);
-
-	// Send the CompleteL to MockLtsy
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	
-	data.Close();
-	mockBattData1.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyBatteryInfoChangeIndId, KErrNone, data);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    
-    // Check completion of api
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    
-    // Check returned data
-    ASSERT_EQUALS(battInfoRet.iStatus, battInfoComplete.iStatus);
-    ASSERT_EQUALS(battInfoRet.iChargeLevel, battInfoComplete.iChargeLevel);
-	
-	data.Close();
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0008
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support for retrieval battery information without having to post a notification.
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::GetBatteryInfo
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0008L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	TRequestStatus reqStatus;
-	
-	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfo;
-	iPhone.GetBatteryInfo(reqStatus, battInfo);
-	
-	// Check RMobilePhone::GetBatteryInfo returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
-	ASSERT_EQUALS(battInfo.iStatus, KBatteryStatus); 
-	ASSERT_EQUALS(battInfo.iChargeLevel, KBatteryChargeLevel);
-	
-	data.Close();
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0009
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test support for network registration change notification.
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::NotifyNetworkRegistrationStatusChange
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0009L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-	TRequestStatus mockLtsyStatus;
-	TRequestStatus requestStatus;
-	
-	// Post notifier RMobilePhone::NotifyNetworkRegistrationStatusChange
-	RMobilePhone::TMobilePhoneRegistrationStatus regStatus;
-	iPhone.NotifyNetworkRegistrationStatusChange(requestStatus, regStatus);
-	
-    // Prepare the NotifyNetworkRegistrationStatusChange data for CompleteL
-	// The Ctsy expects RMobilePhone::TMobilePhoneRegistrationStatus
-	RMobilePhone::TMobilePhoneRegistrationStatus regStatusComplete;
-	// Note: the registration status is made different to that set during phone boot-up intentionally
-	regStatusComplete = RMobilePhone::ERegisteredRoaming;
-    
-    TMockLtsyData1<RMobilePhone::TMobilePhoneRegistrationStatus> mockNetRegData1(regStatusComplete);
-
-	// Send the CompleteL to MockLtsy
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	
-	data.Close();
-	mockNetRegData1.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkRegistrationStatusChangeIndId, KErrNone, data);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-    
-    // Check completion of api
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    
-    // Check returned data
-    ASSERT_EQUALS(regStatus, regStatusComplete);
-	
-	data.Close();
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(2, this); // data, this
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0010
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of NSPS (No Signal, Power Save) notification and waking
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::NotifyNSPSStatus and RMmCustomAPI::NetWakeup
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0010L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	TRequestStatus reqStatus;
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	RMmCustomAPI::TNspsStatus nspsStatus;
-
-	TBool nspsEnabled = ETrue;
-	TMockLtsyData1<TBool> nspsStatusData(nspsEnabled);
-
-	
-	customApi.NotifyNSPSStatus(reqStatus,nspsStatus);
-	
-	data.Close();
-	nspsStatusData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNspsStatusChangeIndId, KErrNone, data);
-
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(KErrNone, reqStatus.Int());
-	ASSERT_EQUALS(RMmCustomAPI::ENspsOn, nspsStatus);
-
-	AssertMockLtsyStatusL();
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneNspsWakeup::KLtsyDispatchPhoneNspsWakeupApiId, KErrNone);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneNspsWakeup::KLtsyDispatchPhoneNspsWakeupApiId, KErrNone);
-    customApi.NetWakeup(reqStatus);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(KErrNone, reqStatus.Int());
-	
-	customApi.NotifyNSPSStatus(reqStatus,nspsStatus);
-	nspsEnabled = EFalse;
-	data.Close();
-	nspsStatusData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNspsStatusChangeIndId, KErrNone, data);
-	data.Close();
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(KErrNone, reqStatus.Int());
-	ASSERT_EQUALS(RMmCustomAPI::ENspsOff, nspsStatus);
-
-	
-	AssertMockLtsyStatusL();
-		
-	
-	CleanupStack::PopAndDestroy(&customApi);
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0011
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of Edge Gprs notification
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::NotifyEGprsInfoChange
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0011L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	TRequestStatus reqStatus;
-	
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-	
-	RPacketService packetService;
-	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
-	
-	// custom API info
-	RMmCustomAPI::TGprsInformation gprsInformation;
-	RMmCustomAPI::TGprsInformationPckg gprsInformationPckg(gprsInformation);
-	
-
-	// test the case when Edge is not supported
-	TBool edgeSupported = EFalse;
-	TMockLtsyData1<TBool> egprsInfoData(edgeSupported);
-	egprsInfoData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyEgprsInfoChangeIndId, KErrNone, data);
-	data.Close();
-		
-	customApi.NotifyEGprsInfoChange(reqStatus,gprsInformationPckg);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
-	ASSERT_EQUALS(gprsInformation.iGprsInfo,RMmCustomAPI::EGprs);
-	AssertMockLtsyStatusL();
-	
-	// test the case when Edge is supported
-	edgeSupported = ETrue;
-	egprsInfoData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyEgprsInfoChangeIndId, KErrNone, data);
-	data.Close();
-
-	customApi.NotifyEGprsInfoChange(reqStatus,gprsInformationPckg);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
-	ASSERT_EQUALS(gprsInformation.iGprsInfo ,RMmCustomAPI::EEdgeGprs);
-	AssertMockLtsyStatusL();
-
-	
-	// test the case when Edge is supported and KErrGeneral returned, (error returned not used in the CTSY)
-	edgeSupported = ETrue;
-	egprsInfoData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyEgprsInfoChangeIndId, KErrGeneral, data);
-	data.Close();
-
-	customApi.NotifyEGprsInfoChange(reqStatus,gprsInformationPckg);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
-	ASSERT_EQUALS(gprsInformation.iGprsInfo ,RMmCustomAPI::EEdgeGprs);
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(&packetService);
-	CleanupStack::PopAndDestroy(&customApi);
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0012
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of Getting the Fdn Status
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::GetFdnStatus() (Sync and Async)
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0012L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	TRequestStatus reqStatus;
-	
-	OpenPhoneL();
-	
-	//test the case where the LTSY returns KErrNone - asynchronous call
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId);
-
-	RMobilePhone::TMobilePhoneFdnStatus compFdnStatus = RMobilePhone::EFdnNotActive;
-	TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> fdnStatusData(compFdnStatus);
-	fdnStatusData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId,KErrNone,data);
-	data.Close();
-	
-	RMobilePhone::TMobilePhoneFdnStatus fdnStatus = RMobilePhone::EFdnUnknown;
-	iPhone.GetFdnStatus(reqStatus,fdnStatus);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
-	ASSERT_EQUALS(compFdnStatus,fdnStatus);
-	AssertMockLtsyStatusL();
-
-	//test the case where the LTSY returns KErrGeneral - asynchronous call
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId);
-
-	compFdnStatus = RMobilePhone::EFdnNotActive;
-	fdnStatusData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId,KErrGeneral,data);
-	data.Close();
-
-	fdnStatus = RMobilePhone::EFdnUnknown;
-	iPhone.GetFdnStatus(reqStatus,fdnStatus);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
-	AssertMockLtsyStatusL();
-
-	//test the case where the LTSY returns KErrNone - synchronous call
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId);
-
-	compFdnStatus = RMobilePhone::EFdnNotActive;
-	fdnStatusData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId,KErrNone,data);
-	data.Close();
-	
-	fdnStatus = RMobilePhone::EFdnUnknown;
-	ASSERT_EQUALS(iPhone.GetFdnStatus(fdnStatus), KErrNone);
-	ASSERT_EQUALS(compFdnStatus,fdnStatus);
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0013
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of Set Network Selection Setting error case
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::NotifyNetworkSelectionSettingChange() RMobilePhone::SetNetworkSelectionSetting()
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0013L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-	
-	//set up the notified data
-	RMobilePhone::TMobilePhoneNetworkSelectionV1 notifiedPhoneNetworkSelection;
-	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg notifiedPckg(notifiedPhoneNetworkSelection);
-
-	//set up the set data
-	RMobilePhone::TMobilePhoneNetworkSelectionV1 phoneNetworkSelection;
-	phoneNetworkSelection.iMethod 			= RMobilePhone::ENetworkSelectionManual;
-	phoneNetworkSelection.iBandClass		= RMobilePhone::ENetworkBandClassAOnly;
-	phoneNetworkSelection.iOperationMode	= RMobilePhone::ENetworkOperationAnalogPreferred;
-
-	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg setPckg(phoneNetworkSelection);
-
-	//set up the Mock LTSY data
-	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkSelectionV1> phoneNetworkSelectionExpData(phoneNetworkSelection);
-	phoneNetworkSelectionExpData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, data, KErrNone);
-	data.Close();
-	
-	TMockLtsyData1<RMobilePhone::TMobilePhoneSelectionMethod> phoneNetworkSelectionCompData(phoneNetworkSelection.iMethod);
-	phoneNetworkSelectionCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, KErrGeneral, data);
-	data.Close();
-
-	//ETel calls
-	TRequestStatus notifyStatus;
-	iPhone.NotifyNetworkSelectionSettingChange(notifyStatus,notifiedPckg);
-	
-	TRequestStatus setNetworkSelectionStatus;
-	iPhone.SetNetworkSelectionSetting(setNetworkSelectionStatus,setPckg);
-	
-	User::WaitForRequest(setNetworkSelectionStatus);
-	ASSERT_EQUALS(setNetworkSelectionStatus.Int(),KErrGeneral);
-	ASSERT_EQUALS(notifyStatus.Int(),KRequestPending);
-		
-	//CTSY sets iBandClass and iOperationMode to defults values
-	ASSERT_EQUALS(RMobilePhone::ENetworkSelectionUnknown,notifiedPhoneNetworkSelection.iMethod);
-	ASSERT_EQUALS(RMobilePhone::ENetworkBandClassUnknown,notifiedPhoneNetworkSelection.iBandClass);
-	ASSERT_EQUALS(RMobilePhone::ENetworkOperationUnknown,notifiedPhoneNetworkSelection.iOperationMode);
-	AssertMockLtsyStatusL();
-
-	iPhone.CancelAsyncRequest(EMobilePhoneNotifyNetworkSelectionSettingChange);
-	ASSERT_EQUALS(notifyStatus.Int(),KErrCancel);
-		
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0014
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::NotifyNetworkConnectionFailure
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::NotifyNetworkConnectionFailure
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0014L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    TRequestStatus requestStatus;
-    customApi.NotifyNetworkConnectionFailure(requestStatus);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-    
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkConnectionFailureIndId, KErrNone);
-	User::WaitForRequest(requestStatus);
-
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0015
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::NotifyDtmfEvent
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::NotifyDtmfEvent
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0015L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    TRequestStatus requestStatus;
-    RMmCustomAPI::TDtmfInfo info;
-    customApi.NotifyDtmfEvent(requestStatus, info);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-    
-    RMmCustomAPI::TDtmfEventType compType = RMmCustomAPI::EDtmfSequence;
-    RMmCustomAPI::TDtmfEvent compEvent = RMmCustomAPI::EDtmfStop;
-    TChar compChar = '0';
-	TMockLtsyData3<RMmCustomAPI::TDtmfEventType, RMmCustomAPI::TDtmfEvent, TChar>
-        modesData(compType, compEvent, compChar);
-	data.Close();
-	modesData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchCustomPhoneNotifyDtmfEventIndId, KErrNone, data);
-	User::WaitForRequest(requestStatus);
-
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS(compType, info.iType);
-    ASSERT_EQUALS(compEvent, info.iEvent);
-    ASSERT_EQUALS(compChar, info.iTone);
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0016
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::ResetNetServer
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::ResetNetServer
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0016L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneResetNetServer::KLtsyDispatchPhoneResetNetServerApiId, KErrNone);
-
-    TRequestStatus requestStatus;
-    customApi.ResetNetServer(requestStatus);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneResetNetServer::KLtsyDispatchPhoneResetNetServerApiId, KErrNone);
-	User::WaitForRequest(requestStatus);
-
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(2, this); // customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0017
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::SetAlwaysOn
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::SetAlwaysOn
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0017L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    // Open a packet service, ctsy must have a packet service sub session in order to activate the SetAlwaysOn 
-	
-	RPacketService packetService;
-	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
-
-    RMmCustomAPI::TSetAlwaysOnMode expData = RMmCustomAPI::EAlwaysModeBoth;
-	TMockLtsyData1<RMmCustomAPI::TSetAlwaysOnMode> modesData(expData);
-	data.Close();
-	modesData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetAlwaysOnMode::KLtsyDispatchPhoneSetAlwaysOnModeApiId, data, KErrNone);
-
-    TRequestStatus requestStatus;
-    customApi.SetAlwaysOn(requestStatus, expData);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-    
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetAlwaysOnMode::KLtsyDispatchPhoneSetAlwaysOnModeApiId, KErrNone);
-	User::WaitForRequest(requestStatus);
-
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(4, this); // packetService, data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0018
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::SetDriveMode
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::SetDriveMode
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0018L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    RMmCustomAPI::TSetDriveMode expData = RMmCustomAPI::EActivateDriveMode;
-	TMockLtsyData1<RMmCustomAPI::TSetDriveMode> modesData(expData);
-	data.Close();
-	modesData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetDriveMode::KLtsyDispatchPhoneSetDriveModeApiId, data, KErrNone);
-
-    TRequestStatus requestStatus;
-    customApi.SetDriveMode(requestStatus, RMmCustomAPI::EActivateDriveMode);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-    
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetDriveMode::KLtsyDispatchPhoneSetDriveModeApiId, KErrNone);
-	User::WaitForRequest(requestStatus);
-
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0019
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::ReadHSxPAStatus, RMmCustomAPI::WriteHSxPAStatus and RMmCustomAPI::NotifyHSxPAStatus
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::ReadHSxPAStatus, RMmCustomAPI::WriteHSxPAStatus and RMmCustomAPI::NotifyHSxPAStatus
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0019L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    // Register Notification
-    RMmCustomAPI::THSxPAStatus notifyHspaStatus;
-    TRequestStatus notifyRequestStatus;
-    customApi.NotifyHSxPAStatus(notifyRequestStatus, notifyHspaStatus);
-    ASSERT_EQUALS(KRequestPending, notifyRequestStatus.Int());
-
-    // Expect for setter
-    RMmCustomAPI::THSxPAStatus expSetHspaStatus = RMmCustomAPI::EHSxPAEnabled;
-	TMockLtsyData1<RMmCustomAPI::THSxPAStatus> expSetData(expSetHspaStatus);
-	data.Close();
-	expSetData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetHspaStatus::KLtsyDispatchPhoneSetHspaStatusApiId, data, KErrNone);
-
-    // Set the data
-    TRequestStatus setRequestStatus;
-    RMmCustomAPI::THSxPAStatus setHspaStatus = expSetHspaStatus;
-    customApi.WriteHSxPAStatus(setRequestStatus, setHspaStatus);
-	ASSERT_EQUALS(KRequestPending, setRequestStatus.Int());
-
-    // Complete the set
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetHspaStatus::KLtsyDispatchPhoneSetHspaStatusApiId, KErrNone);
-	User::WaitForRequest(setRequestStatus);
-	ASSERT_EQUALS(KErrNone, setRequestStatus.Int());
-
-    // Expect for getter
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetHspaStatus::KLtsyDispatchPhoneGetHspaStatusApiId, KErrNone);
-
-    // get the data
-    TRequestStatus getRequestStatus;
-    RMmCustomAPI::THSxPAStatus getHspaStatus;
-    customApi.ReadHSxPAStatus(getRequestStatus, getHspaStatus);
-	ASSERT_EQUALS(KRequestPending, getRequestStatus.Int());
-
-    // Complete the get
-    RMmCustomAPI::THSxPAStatus compGetHspaStatus = RMmCustomAPI::EHSxPAEnabled;
-	TMockLtsyData1<RMmCustomAPI::THSxPAStatus> compGetData(compGetHspaStatus);
-	data.Close();
-	compGetData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetHspaStatus::KLtsyDispatchPhoneGetHspaStatusApiId, KErrNone, data);
-	User::WaitForRequest(getRequestStatus);
-	ASSERT_EQUALS(KErrNone, getRequestStatus.Int());
-    ASSERT_EQUALS(compGetHspaStatus, getHspaStatus);
-
-    // notify a change
-    RMmCustomAPI::THSxPAStatus compNotifyHspaStatus = RMmCustomAPI::EHSxPADisabled;
-	TMockLtsyData1<RMmCustomAPI::THSxPAStatus> compNotiftData(compNotifyHspaStatus);
-	data.Close();
-	compNotiftData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyHspaStatusChangedIndId, KErrNone, data);
-	User::WaitForRequest(notifyRequestStatus);
-	ASSERT_EQUALS(KErrNone, notifyRequestStatus.Int());
-    ASSERT_EQUALS(compNotifyHspaStatus, notifyHspaStatus);
-    
-    
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0020
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::GetNetworkProviderName
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0020L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    // Checking the synch API version
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone);
-	_LIT(KNetworkProviderName, "Provider Name");
-    RMobilePhone::TMobilePhoneNetworkLongName completeData(KNetworkProviderName);
-	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkLongName> nameData(completeData);
-	data.Close();
-	nameData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone, data);
-    RMobilePhone::TMobilePhoneNetworkLongName name;
-	ASSERT_EQUALS(KErrNone, customApi.GetNetworkProviderName(name));
-    ASSERT_EQUALS(name, completeData);
-
-    // Checking the asynch API version
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone);
-	_LIT(KNetworkProviderName2, "Provider Name 2");
-    RMobilePhone::TMobilePhoneNetworkLongName completeData2(KNetworkProviderName2);
-	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkLongName> nameData2(completeData2);
-	data.Close();
-	nameData2.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone, data);
-    TRequestStatus status;
-	customApi.GetNetworkProviderName(status, name);
-	User::WaitForRequest(status);
-    ASSERT_EQUALS(status.Int(), KErrNone);
-    ASSERT_EQUALS(name, completeData2);
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0021
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::GetOperatorName
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::GetOperatorName
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0021L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetOperatorName::KLtsyDispatchPhoneGetOperatorNameApiId, KErrNone);
-
-    TRequestStatus getRequestStatus;
-    RMmCustomAPI::TOperatorNameInfo getNameInfo;
-    customApi.GetOperatorName(getRequestStatus, getNameInfo);
-	ASSERT_EQUALS(KRequestPending, getRequestStatus.Int());
-    
-    RMmCustomAPI::TOperatorNameType compType = RMmCustomAPI::EOperatorNameProgrammableLatin;
-	_LIT(KNetworkOperatorName, "Network Operator Name");
-    TBuf<KMaxOperatorNameLength> compName(KNetworkOperatorName);
-	TMockLtsyData2<RMmCustomAPI::TOperatorNameType, TBuf<KMaxOperatorNameLength> > modesData(compType, compName);
-	data.Close();
-	modesData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetOperatorName::KLtsyDispatchPhoneGetOperatorNameApiId, KErrNone, data);
-
-   	User::WaitForRequest(getRequestStatus);
-	ASSERT_EQUALS(KErrNone, getRequestStatus.Int());
-    ASSERT_EQUALS(compType, getNameInfo.iType);
-    ASSERT_EQUALS(compName, getNameInfo.iName);
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0022
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::SetSystemNetworkMode
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkMode
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0022L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    // Check synch version of the API
-    RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeUmts;
-	TMockLtsyData1<RMmCustomAPI::TNetworkModeCaps> modeData(mode);
-	data.Close();
-	modeData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, data, KErrNone);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, KErrNone);
-	ASSERT_EQUALS(KErrNone, customApi.SetSystemNetworkMode(mode));
-
-    // Check asynch version of the API
-    TRequestStatus status;
-    mode = RMmCustomAPI::KCapsNetworkModeDual;
-	TMockLtsyData1<RMmCustomAPI::TNetworkModeCaps> modeData2(mode);
-	data.Close();
-	modeData2.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, data, KErrNone);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, KErrNone);
-    customApi.SetSystemNetworkMode(status, mode);
-   	User::WaitForRequest(status);
-	ASSERT_EQUALS(KErrNone, status.Int());
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0023
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::GetCurrentSystemNetworkModes
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::GetCurrentSystemNetworkModes
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0023L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    // Check the synch version of the API
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone);
-    TUint32 compModes = RMmCustomAPI::KCapsNetworkModeUmts | RMmCustomAPI::KCapsNetworkModeGsm;
-	TMockLtsyData1<TUint32> modesData(compModes);
-	data.Close();
-	modesData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone, data);
-    TUint32 modes;
-	ASSERT_EQUALS(KErrNone, customApi.GetCurrentSystemNetworkModes(modes));
-    ASSERT_EQUALS(modes, compModes);
-
-    // Check the asynch version of the API
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone);
-    compModes = RMmCustomAPI::KCapsNetworkModeUmts;
-	TMockLtsyData1<TUint32> modesData2(compModes);
-	data.Close();
-	modesData2.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone, data);
-    TRequestStatus status;
-    customApi.GetCurrentSystemNetworkModes(status, modes);
-   	User::WaitForRequest(status);
-	ASSERT_EQUALS(KErrNone, status.Int());
-    ASSERT_EQUALS(modes, compModes);
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0024
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::NotifyRauEvent
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::NotifyRauEvent
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0024L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    TRequestStatus requestStatus;
-    RMmCustomAPI::TRauEventStatus event;
-    customApi.NotifyRauEvent(requestStatus, event);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-    
-	RMmCustomAPI::TRauEventStatus compEvent = RMmCustomAPI::ERauEventResumed;
-	TMockLtsyData1<RMmCustomAPI::TRauEventStatus> modesData(compEvent);
-	data.Close();
-	modesData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyRauEventIndId, KErrNone, data);
-	User::WaitForRequest(requestStatus);
-
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS(compEvent, event);
-
-	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0025
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RMmCustomAPI::NotifyCellInfoChange and RMmCustomAPI::GetCellInfo
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::NotifyCellInfoChange and RMmCustomAPI::GetCellInfo
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0025L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    TRequestStatus requestStatus;
-    RMmCustomAPI::TMmCellInfo* completeInfo = new(ELeave) RMmCustomAPI::TMmCellInfo;
-    CleanupStack::PushL(completeInfo);
-    RMmCustomAPI::TMmCellInfo* notifyInfo = new(ELeave) RMmCustomAPI::TMmCellInfo;
-    CleanupStack::PushL(notifyInfo);
-    RMmCustomAPI::TMmCellInfoPckg *notifyInfoPckg = new(ELeave) RMmCustomAPI::TMmCellInfoPckg(*notifyInfo);
-    CleanupStack::PushL(notifyInfoPckg);
-    RMmCustomAPI::TMmCellInfo* getInfo = new(ELeave) RMmCustomAPI::TMmCellInfo;
-    CleanupStack::PushL(getInfo);
-    RMmCustomAPI::TMmCellInfoPckg *getInfoPckg = new(ELeave) RMmCustomAPI::TMmCellInfoPckg(*getInfo);
-    CleanupStack::PushL(getInfoPckg);
-	
-    // Register a notifier
-    customApi.NotifyCellInfoChange(requestStatus, *notifyInfoPckg);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-
-    // Indicate cell changed to unknowd cell
-    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EUnknown;
-	TMockLtsyData1<RMmCustomAPI::TMmCellInfo *> modesData1(completeInfo);
-	data.Close();
-	modesData1.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangedIndId, KErrNone, data);
-
-    // Check results
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS((*completeInfo).iMode, (*notifyInfo).iMode);
-
-    // Register a notifier
-    customApi.NotifyCellInfoChange(requestStatus, *notifyInfoPckg);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-
-    // Indicate cell changed to GSM cell with some info
-    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EGSM;
-    (*completeInfo).iGsmCellInfo.iTA = 17;
-    (*completeInfo).iGsmCellInfo.iNmr[13].iARFCN = 4;
-    (*completeInfo).iGsmCellInfo.iNmr[8].iBSIC = 44;
-    (*completeInfo).iGsmCellInfo.iNmr[11].iRxLEV = 100;
-	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData2(*completeInfo);
-	data.Close();
-	modesData2.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangedIndId, KErrNone, data);
-
-    // Check results
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS((*completeInfo).iMode, (*notifyInfo).iMode);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iTA, (*notifyInfo).iGsmCellInfo.iTA);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[13].iARFCN, (*notifyInfo).iGsmCellInfo.iNmr[13].iARFCN);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[8].iBSIC, (*notifyInfo).iGsmCellInfo.iNmr[8].iBSIC);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[11].iRxLEV, (*notifyInfo).iGsmCellInfo.iNmr[11].iRxLEV);
-
-    // Register a notifier
-    customApi.NotifyCellInfoChange(requestStatus, *notifyInfoPckg);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-
-    // Indicate cell changed to WCDMA cell with some info
-    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EWCDMA;
-    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL = 33;
-    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL = 42;
-    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt = 18;
-    (*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode = 100;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddUL = 311;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iFrequencyInfo.iFddDL = 11;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCarrierRSSI = 25;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[3].iCID = 25;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[30].iTddInfo.iPrimaryCcpchRscp = 5;
-	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData3(*completeInfo);
-	data.Close();
-	modesData3.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangedIndId, KErrNone, data);
-
-    // Check results
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS((*completeInfo).iMode, (*notifyInfo).iMode );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL, (*notifyInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL, (*notifyInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt, (*notifyInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode, (*notifyInfo).iWcdmaCellInfo.iPrimaryScrambilingCode );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddUL, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddUL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iFrequencyInfo.iFddDL, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iFrequencyInfo.iFddDL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCarrierRSSI, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCarrierRSSI );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[3].iCID, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[3].iCID );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[30].iTddInfo.iPrimaryCcpchRscp, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[30].iTddInfo.iPrimaryCcpchRscp );
-
-    // expect a GetCellInfo request
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone);
-
-    // execute the GetCellInfo request
-    customApi.GetCellInfo(requestStatus, *getInfoPckg);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-
-    // Complete with unknown cell info
-    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EUnknown;
-	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData4(*completeInfo);
-	data.Close();
-	modesData4.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone, data);
-
-    // Check results
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS((*completeInfo).iMode, (*getInfo).iMode);
-
-    // expect a GetCellInfo request
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone);
-
-    // execute the GetCellInfo request
-    customApi.GetCellInfo(requestStatus, *getInfoPckg);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-
-    // Complete with an GSM cell info
-    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EGSM;
-    (*completeInfo).iGsmCellInfo.iTA = 1;
-    (*completeInfo).iGsmCellInfo.iNmr[1].iARFCN = 2;
-    (*completeInfo).iGsmCellInfo.iNmr[2].iBSIC = 3;
-    (*completeInfo).iGsmCellInfo.iNmr[7].iRxLEV = 4;
-	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData5(*completeInfo);
-	data.Close();
-	modesData1.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone, data);
-
-    // Check results
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS((*completeInfo).iMode, (*getInfo).iMode);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iTA, (*getInfo).iGsmCellInfo.iTA);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[1].iARFCN, (*getInfo).iGsmCellInfo.iNmr[1].iARFCN);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[2].iBSIC, (*getInfo).iGsmCellInfo.iNmr[2].iBSIC);
-    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[7].iRxLEV, (*getInfo).iGsmCellInfo.iNmr[7].iRxLEV);
-
-    // expect a GetCellInfo request
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone);
-
-    // execute the GetCellInfo request
-    customApi.GetCellInfo(requestStatus, *getInfoPckg);
-	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
-
-    // Complete with an WCDMA cell info
-    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EWCDMA;
-    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL = 11;
-    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL = 12;
-    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt = 13;
-    (*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode = 14;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[1].iFrequencyInfo.iFddUL = 1;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddDL = 2;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[3].iCarrierRSSI = 3;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iCellMeasuredResult[1].iCID = 6;
-    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCellMeasuredResult[2].iTddInfo.iPrimaryCcpchRscp = 8;
-	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData6(*completeInfo);
-	data.Close();
-	modesData1.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone, data);
-
-    // Check results
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-    ASSERT_EQUALS((*completeInfo).iMode, (*getInfo).iMode);
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL, (*getInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL, (*getInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt, (*getInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode, (*getInfo).iWcdmaCellInfo.iPrimaryScrambilingCode );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[1].iFrequencyInfo.iFddUL, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[1].iFrequencyInfo.iFddUL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddDL, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddDL );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[3].iCarrierRSSI, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[3].iCarrierRSSI );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iCellMeasuredResult[1].iCID, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iCellMeasuredResult[1].iCID );
-    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCellMeasuredResult[2].iTddInfo.iPrimaryCcpchRscp, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCellMeasuredResult[2].iTddInfo.iPrimaryCcpchRscp );
-
-	CleanupStack::PopAndDestroy(8, this); // getInfoPckg, getInfo, notifyInfoPckg, notifyInfo, completeInfo, data, customApi, this
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0026
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of RMobilePhone::NotifyCellInfoChange() RMobilePhone::GetCellInfo()
-@SYMTestPriority High
-@SYMTestActions Invokes NotifyCellInfoChange, GetCellInfo
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0026L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-	
-	RMobilePhone::TMobilePhoneCellInfoV9 returnCellInfo;
-	TMockLtsyData1<RMobilePhone::TMobilePhoneCellInfoV9> cellInfoCompData(returnCellInfo);
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId, KErrNone);
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId);
-
-	returnCellInfo.iMode = RMobilePhone::ECellModeGsm;
-	returnCellInfo.iCellId = 1;
-	returnCellInfo.iTimingAdvance = 123;
-	returnCellInfo.iStatus = RMobilePhone::ECellInfoStatusCurrent;
-	cellInfoCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId, KErrNone, data);
-	data.Close();
-	
-	//client side will be notified when a CellInfoChange has occurred, the first time called will result in
-	//a NotifyCellInfo Request to inform the LTSY we are interested in these notifications
-	TRequestStatus notifyCellInfoChangeReqStatus;
-	RMobilePhone::TMobilePhoneCellInfoV9 cellInfo;
-	RMobilePhone::TMobilePhoneCellInfoV9Pckg cellInfoPckg(cellInfo);
-	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
-		
-	TRequestStatus getCellInfoReqStatus;
-	RMobilePhone::TMobilePhoneCellInfoV9 cellInfo2;
-	RMobilePhone::TMobilePhoneCellInfoV9Pckg cellInfoPckg2(cellInfo2);
-	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg2);
-		
-	User::WaitForRequest(notifyCellInfoChangeReqStatus);
-	User::WaitForRequest(getCellInfoReqStatus);
-	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrNone);
-	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrNone);
-	
-	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
-	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
-	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
-	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
-	
-	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo2.iMode);
-	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo2.iCellId);
-	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo2.iTimingAdvance);
-	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo2.iStatus);
-	
-	AssertMockLtsyStatusL();
-		
-	//now a second get, the value is in the cach (rest cellInfo first)
-	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
-	cellInfo.iCellId = 0;
-	cellInfo.iTimingAdvance = 0;
-	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
-	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg);
-	User::WaitForRequest(getCellInfoReqStatus);
-	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrNone);
-	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
-	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
-	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
-	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
-	
-	AssertMockLtsyStatusL();
-	
-	// an unsolicited cellInfo change, with KErrNone
-	returnCellInfo.iMode = RMobilePhone::ECellModeWcdma;
-	returnCellInfo.iCellId = 2;
-	returnCellInfo.iTimingAdvance = 124;
-	returnCellInfo.iStatus = RMobilePhone::ECellInfoStatusNotCurrent;
-	cellInfoCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangeIndId, KErrNone, data);
-	data.Close();
-	
-	//reset the return data
-	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
-	cellInfo.iCellId = 0;
-	cellInfo.iTimingAdvance = 0;
-	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
-	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
-	User::WaitForRequest(notifyCellInfoChangeReqStatus);
-	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrNone);
-	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
-	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
-	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
-	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
-		
-	AssertMockLtsyStatusL();
-	
-	//an unsolicited cellInfo change, with KErrGeneral, the cache is now marked as dirty
-	cellInfoCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangeIndId, KErrGeneral, data);
-	data.Close();
-
-	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
-	User::WaitForRequest(notifyCellInfoChangeReqStatus);
-	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrGeneral);
-	
-	AssertMockLtsyStatusL();
-	
-	//a client side GetCellInfo call (post the cache being marked dirty), KErrGeneral returned
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId);
-	returnCellInfo.iMode = RMobilePhone::ECellModeGsm;
-	returnCellInfo.iCellId = 1;
-	returnCellInfo.iTimingAdvance = 123;
-	returnCellInfo.iStatus = RMobilePhone::ECellInfoStatusCurrent;
-	cellInfoCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId, KErrGeneral, data);
-	data.Close();
-	
-	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg);
-	User::WaitForRequest(getCellInfoReqStatus);
-	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrGeneral);
-	
-	AssertMockLtsyStatusL(); 
-	
-	
-	//an unsolicited cellInfo change, with KErrNone, the cache is now marked as clean
-	cellInfoCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangeIndId, KErrNone, data);
-	data.Close();
-
-	//reset the return data
-	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
-	cellInfo.iCellId = 0;
-	cellInfo.iTimingAdvance = 0;
-	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
-	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
-	User::WaitForRequest(notifyCellInfoChangeReqStatus);
-	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrNone);
-	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
-	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
-	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
-	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
-	
-	AssertMockLtsyStatusL();
-
-	//finally a cached get.
-	//reset the return data
-	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
-	cellInfo.iCellId = 0;
-	cellInfo.iTimingAdvance = 0;
-	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
-	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg);
-	User::WaitForRequest(getCellInfoReqStatus);
-	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrNone);
-	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
-	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
-	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
-	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
-
-	AssertMockLtsyStatusL();
-
-	
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0027
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of RMobilePhone::NotifyCellInfoChange()
-@SYMTestPriority High
-@SYMTestActions Invokes NotifyCellInfoChange,with a complete error case
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0027L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-	
-	//test the complete of NotifyCellInfoChange with an error, this is in a differnet test case
-	//as the IPC is only fired the first time a NotifyCellInfoChange is called as the 
-	//Cache Ability is set ECacheUnknown
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId, KErrGeneral);
-
-	TRequestStatus notifyCellInfoChangeReqStatus;
-	RMobilePhone::TMobilePhoneCellInfoV9 cellInfo;
-	RMobilePhone::TMobilePhoneCellInfoV9Pckg cellInfoPckg(cellInfo);
-	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
-	User::WaitForRequest(notifyCellInfoChangeReqStatus);
-	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrGeneral);
-	
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0028
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of RMmCustomAPI::GetUSIMServiceSupport()
-@SYMTestPriority High
-@SYMTestActions Invokes GetUSIMServiceSupport, in KErrNone and KErrGeneral complete cases
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0028L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	TRequestStatus reqStatus;
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-	
-	//test a Get Usim Service Support with KErrNone completion
-	
-	TInt applicationNumber = 101;
-	TBool supported = ETrue;
-	
-	TMockLtsyData1<TInt> getUsimServiceSupportExpData(applicationNumber);
-	getUsimServiceSupportExpData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, data);
-	data.Close();
-	
-	TMockLtsyData2<TInt, TBool> getUsimServiceSupportCompData(applicationNumber, supported);
-	getUsimServiceSupportCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, KErrNone, data);
-	data.Close();
-	
-	RMmCustomAPI::TAppSupport usimSupport;
-	usimSupport.iAppNum = applicationNumber; //in
-	usimSupport.iSupported = EFalse; //out
-	customApi.GetUSIMServiceSupport(reqStatus, usimSupport);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(),KErrNone);
-	ASSERT_EQUALS(usimSupport.iAppNum,applicationNumber);
-	ASSERT_EQUALS(usimSupport.iSupported,supported);
-		
-	AssertMockLtsyStatusL();
-
-	//test a Get Usim Service Support with KErrGeneral completion
-
-	applicationNumber = 102;
-	supported = EFalse;
-	
-	getUsimServiceSupportExpData.SerialiseL(data);
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, data);
-	data.Close();
-	
-	getUsimServiceSupportCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, KErrGeneral, data);
-	data.Close();
-	
-	
-	usimSupport.iAppNum = applicationNumber; //in
-	usimSupport.iSupported = ETrue; //out
-	customApi.GetUSIMServiceSupport(reqStatus, usimSupport);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(),KErrGeneral);
-	ASSERT_EQUALS(usimSupport.iAppNum,applicationNumber);
-	ASSERT_EQUALS(usimSupport.iSupported, static_cast<TBool>(ETrue)); //i.e. not set to EFalse from the complete
-	
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(&customApi);
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0029
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of RMobilePhone::GetCurrentActiveUSimApplication()
-@SYMTestPriority High
-@SYMTestActions Invokes GetCurrentActiveUSimApplication, in KErrNone and KErrGeneral complete cases
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0029L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	TRequestStatus reqStatus;
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId);
-	
-	RMobilePhone::TAID comopAid(_L8("AID_DATA"));
-	
-	TDesC8* aidPtr = &comopAid;
-	TMockLtsyData1<TDesC8*> getCurrentActiveUsimAppCompData(aidPtr);
-	getCurrentActiveUsimAppCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId, KErrNone, data);
-	data.Close();
-	
-	RMobilePhone::TAID aid;
-	iPhone.GetCurrentActiveUSimApplication(reqStatus,aid);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
-	ASSERT_EQUALS(comopAid, aid);
-	AssertMockLtsyStatusL();
-
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId);
-	
-	getCurrentActiveUsimAppCompData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId, KErrGeneral, data);
-	data.Close();
-
-	aid.Zero();
-	iPhone.GetCurrentActiveUSimApplication(reqStatus,aid);
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
-	ASSERT_EQUALS(comopAid, aid); //aid still copied
-	AssertMockLtsyStatusL();
-		
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0030
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of RMobilePhone::TerminateAllCalls()
-@SYMTestPriority High
-@SYMTestActions Invokes RMobilePhone::TerminateAllCalls
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0030L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	TRequestStatus requestStatus;
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-
-	
-	TInt callId = 1;
-	RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
-	DriverDialCallL(callId, mobileService);
-	
-	TInt callIdHangUp = 0; //callId is provided if a call is in connecting state; else 0
-    TMockLtsyData1<TInt> mockData(callIdHangUp); 
-	mockData.SerialiseL(data);
-	
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneTerminateAllCalls::KLtsyDispatchPhoneTerminateAllCallsApiId, data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneTerminateAllCalls::KLtsyDispatchPhoneTerminateAllCallsApiId, KErrNone);
-	data.Close();
-
-	TInt hangUpCause = KErrGsmCCNormalCallClearing; // Hang up cause for normal hang up
-	DriverHangUpCallL(callId, hangUpCause, ETrue);
-	
-
-	// Client Side Test
-
-	RMobileLine mobileLine;
-	CleanupClosePushL(mobileLine);
-	RMobileCall mobileCall;
-	CleanupClosePushL(mobileCall);
-	ClientDialCallL(mobileLine, mobileCall, mobileService);
-
-
-	TRequestStatus reqStatusTerminated;
-	iMockLTSY.NotifyTerminated(reqStatusTerminated); 
-
-	iPhone.TerminateAllCalls(requestStatus);
-	User::WaitForRequest(requestStatus);
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-	ClientHangUpCallL(mobileCall);
-	
-	User::WaitForRequest(reqStatusTerminated);
-	ASSERT_EQUALS(KErrNone, reqStatusTerminated.Int());
-	
-	AssertMockLtsyStatusL();
-	
-	mobileCall.Close();
-	mobileLine.Close();
-	
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(&mobileCall);
-	CleanupStack::PopAndDestroy(&mobileLine);
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0031
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test correct function of RMmCustomAPI::GetSystemNetworkBand() and RMmCustomAPI::SetSystemNetworkBand()
-@SYMTestPriority High
-@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkBand(), RMmCustomAPI::GetSystemNetworkBand()
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0031L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-
-	TRequestStatus requestStatus;
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-	
-	OpenPhoneL();
-	
-	RMmCustomAPI customApi;
-	OpenCustomApiLC(customApi);
-
-	RMmCustomAPI::TBandSelection band=RMmCustomAPI::ENetworkBandAny;
-	RMmCustomAPI::TNetworkModeCaps mode=RMmCustomAPI::KCapsNetworkModeUmts;
-	
-	RMmCustomAPI::TBandSelection bandToGet=RMmCustomAPI::ENetworkBandUmts850;
-	RMmCustomAPI::TNetworkModeCaps modeToGet=RMmCustomAPI::KCapsNetworkModeDual;
-	
-	RMmCustomAPI::TBandSelection bandToSet=RMmCustomAPI::ENetworkBandUmts2100;
-	RMmCustomAPI::TNetworkModeCaps modeToSet=RMmCustomAPI::KCapsNetworkModeGsm;
-	
-	TRequestStatus req=0;
-
-	
-	//1. Test GetSystemNetworkBand
-
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetSystemNetworkBand::KLtsyDispatchPhoneGetSystemNetworkBandApiId);
-	
-	TMockLtsyData2<RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> getData(bandToGet, modeToGet);
-	getData.SerialiseL(data);
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetSystemNetworkBand::KLtsyDispatchPhoneGetSystemNetworkBandApiId, KErrNone, data);
-	data.Close();
-	
-	
-	customApi.GetSystemNetworkBand( req, band, mode);
-    User::WaitForRequest(req);
-    
-    ASSERT_EQUALS(KErrNone, req.Int());
-    ASSERT_EQUALS(bandToGet, band);
-    ASSERT_EQUALS(modeToGet, mode);
-    
-    AssertMockLtsyStatusL();
-    
-    
-    //2. Test SetSystemNetworkBand
-
-	TMockLtsyData2<RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> setData(bandToSet, modeToSet);
-	setData.SerialiseL(data);
-    
-	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetSystemNetworkBand::KLtsyDispatchPhoneSetSystemNetworkBandApiId, data);
-
-	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetSystemNetworkBand::KLtsyDispatchPhoneSetSystemNetworkBandApiId, KErrNone);
-	data.Close();
-    
-    
-    band = bandToSet;
-    mode = modeToSet;
-    customApi.SetSystemNetworkBand(req, band, mode);
-    User::WaitForRequest(req);
-    ASSERT_EQUALS(KErrNone, req.Int());
-	
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(&customApi);
-	CleanupStack::PopAndDestroy(&data);
-	CleanupStack::PopAndDestroy(this);
-	}
-
-/**
-@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0032
-@SYMComponent telephony_ctsy
-@SYMTestCaseDesc Test RPhone::NotifyDtmfEvent
-@SYMTestPriority High
-@SYMTestActions Invokes RPhone::NotifyDtmfEvent
-@SYMTestExpectedResults Pass
-@SYMTestType UT
- */
-void CCTsyPhoneFU::TestUnit0032L()
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-	
-	RBuf8 data;
-	CleanupClosePushL(data);
-
-    TRequestStatus requestStatus;
-	
-	RMobilePhone::TMobilePhoneDTMFEvent event(RMobilePhone::EStopDtmfTone);	
-	RMobilePhone::TMobilePhoneDTMFEvent startEvent(RMobilePhone::EStartDtmfTone);	
-	TRequestStatus reqStatus;
-	
-    TMockLtsyData1< RMobilePhone::TMobilePhoneDTMFEvent > toneEvent( startEvent );
-    toneEvent.SerialiseL(data);
-
-	iPhone.NotifyDTMFEvent(reqStatus, event);
-	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyDtmfEventIndId, KErrNone, data);
-	
-	User::WaitForRequest(reqStatus);
-	ASSERT_EQUALS(KErrNone, reqStatus.Int());  
-	ASSERT_EQUALS(RMobilePhone::EStartDtmfTone, event);
-	
-	
-	CleanupStack::PopAndDestroy(2, this); // call, line, data, this	
-	}
+// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+/**
+ @file The TEFUnit test suite for PhoneControl in the Common TSY.
+*/
+
+#include "cctsyphonefu.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <ctsy/mmtsy_names.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include <test/tmockltsydata.h>
+#include <ctsy/serviceapi/gsmerror.h>
+#include <ctsy/serviceapi/cmmutility.h>
+#include <ctsy/ltsy/mltsydispatchcallcontrolinterface.h>
+#include <ctsy/ltsy/mltsydispatchsiminterface.h>
+#include <ctsy/ltsy/mltsydispatchphoneinterface.h>
+#include <ctsy/ltsy/mltsydispatchpacketservicesinterface.h>
+#include <etelmmerr.h>
+#include "listretrieverao.h"
+#include "mockltsyindicatorids.h"
+#include <ctsy/rmmcustomapi.h>
+#include <ctsy/ltsy/mltsydispatchpacketservicesinterface.h>
+
+#include "cctsyactiveretriever.h"
+
+CTestSuite* CCTsyPhoneFU::CreateSuiteL(const TDesC& aName)
+	{
+	SUB_SUITE;
+
+	//add use-case tests
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUseCase0004L);
+  
+	//add other unit tests
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0005L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0006L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0007L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0008L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0009L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0010L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0011L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0012L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0013L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0014L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0015L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0016L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0017L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0018L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0019L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0020L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0021L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0022L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0023L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0024L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0025L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0026L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0027L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0028L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0029L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0030L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0031L);
+	ADD_TEST_STEP_ISO_CPP(CCTsyPhoneFU, TestUnit0032L);
+
+	END_SUITE;
+	}
+
+//
+// Use-case tests
+//
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Use-case: boot phone.  
+@SYMTestPriority High
+@SYMTestActions Invokes APIs to go through booting phone.
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+ */
+void CCTsyPhoneFU::TestUseCase0001L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	//simple boot phone use-case is actually incorporated as the OpenPhoneL() function.
+	OpenPhoneL();
+	AssertMockLtsyStatusL();
+
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Use-case:  manual network detection and selection
+@SYMTestPriority High
+@SYMTestActions Invokes APIs to go through detecting and selecting a network to register onto.
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+ */
+void CCTsyPhoneFU::TestUseCase0002L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	TRequestStatus status;
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	
+	/********************************Set network selection to manual***********************************/
+	
+	//set up the notified data
+	RMobilePhone::TMobilePhoneNetworkSelectionV1 notifiedPhoneNetworkSelection;
+	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg notifiedPckg(notifiedPhoneNetworkSelection);
+
+	//set up the set data
+	RMobilePhone::TMobilePhoneNetworkSelectionV1 phoneNetworkSelection;
+	phoneNetworkSelection.iMethod 			= RMobilePhone::ENetworkSelectionManual;
+	phoneNetworkSelection.iBandClass		= RMobilePhone::ENetworkBandClassAOnly;
+	phoneNetworkSelection.iOperationMode	= RMobilePhone::ENetworkOperationAnalogPreferred;
+
+	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg setPckg(phoneNetworkSelection);
+
+	//set up the Mock LTSY data
+	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkSelectionV1> phoneNetworkSelectionExpData(phoneNetworkSelection);
+	phoneNetworkSelectionExpData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, data, KErrNone);
+	data.Close();
+	
+	TMockLtsyData1<RMobilePhone::TMobilePhoneSelectionMethod> phoneNetworkSelectionCompData(phoneNetworkSelection.iMethod);
+	phoneNetworkSelectionCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, KErrNone, data);
+	data.Close();
+
+	//ETel calls
+	TRequestStatus notifyStatus;
+	iPhone.NotifyNetworkSelectionSettingChange(notifyStatus,notifiedPckg);
+	iPhone.SetNetworkSelectionSetting(status,setPckg);
+	
+	User::WaitForRequest(status);
+	User::WaitForRequest(notifyStatus);
+	ASSERT_EQUALS(status.Int(),KErrNone);
+	ASSERT_EQUALS(notifyStatus.Int(),KErrNone);
+	
+	//CTSY sets iBandClass and iOperationMode to defults values
+	ASSERT_EQUALS(phoneNetworkSelection.iMethod,notifiedPhoneNetworkSelection.iMethod);
+	ASSERT_EQUALS(RMobilePhone::ENetworkBandClassUnknown,notifiedPhoneNetworkSelection.iBandClass);
+	ASSERT_EQUALS(RMobilePhone::ENetworkOperationUnknown,notifiedPhoneNetworkSelection.iOperationMode);
+	AssertMockLtsyStatusL();
+	
+	/*********************************************************************************************/
+	
+	/********************************Get Detected Network List************************************/
+	
+	CGetDetectedNetworksAO* detAO = CGetDetectedNetworksAO::NewLC(iPhone,iMockLTSY);
+	
+	// --- prepare data for CompleteL ---
+ 	CMobilePhoneNetworkListV2* networkListV2 = CMobilePhoneNetworkListV2::NewL();
+	CleanupStack::PushL(networkListV2);
+	
+ 	RMobilePhone::TMobilePhoneNetworkInfoV2 infoV2;
+	
+	infoV2.iAccess      = RMobilePhone::ENetworkAccessUnknown;
+	infoV2.iMode        = RMobilePhone::ENetworkModeUnknown;
+	infoV2.iStatus      = RMobilePhone::ENetworkStatusUnknown;
+	infoV2.iBandInfo    = RMobilePhone::EBandUnknown;	
+	
+	_LIT(KCountryCode, "1234");
+	infoV2.iCountryCode = KCountryCode;
+
+	_LIT(KAnalogSID, "12345678");
+	infoV2.iAnalogSID   = KAnalogSID;
+
+	_LIT(KNetworkId, "12345678");
+	infoV2.iNetworkId   = KNetworkId;
+	
+	_LIT(KDisplayTag, "1234567890");
+	infoV2.iDisplayTag  = KDisplayTag;
+	
+	_LIT(KShortName, "1234567890");
+	infoV2.iShortName   = KShortName;
+
+	_LIT(KLongName, "12345678901234567890");
+	infoV2.iLongName    = KLongName;
+	
+	networkListV2->AddEntryL(infoV2);
+
+	//set up Mock LTSY expect and completes for a retrieve (not cancelled)
+    iMockLTSY.ExpectL(MLtsyDispatchPhoneGetDetectedNetworks::KLtsyDispatchPhoneGetDetectedNetworksApiId, KErrNone);
+
+    //execute the retrieve
+	detAO->TestRetrieveL(*networkListV2);
+
+	//check what has been returned 
+	ASSERT_EQUALS(detAO->CheckResultsL(),KErrNone);
+	
+	AssertMockLtsyStatusL();
+	
+	/*********************************************************************************************/
+
+	/********************************Manual Network Selection************************************/
+
+	//setup ETel required data
+	RMobilePhone::TMobilePhoneNetworkManualSelection selection;
+	selection.iCountry = KCountryCode;
+	selection.iNetwork = KNetworkId;
+
+	//setup MockTSY data
+	TBool isManual = ETrue;
+	TMockLtsyData2<TBool,RMobilePhone::TMobilePhoneNetworkManualSelection> selectData(isManual,selection);
+    selectData.SerialiseL(data);
+	
+	//set up Mock LTSY expect and completes for a retrieve (not cancelled)
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSelectNetwork::KLtsyDispatchPhoneSelectNetworkApiId, data, KErrNone);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSelectNetwork::KLtsyDispatchPhoneSelectNetworkApiId, KErrNone);
+	data.Close();
+	
+	//ETel calls
+	iPhone.SelectNetwork(status,isManual,selection);
+	User::WaitForRequest(status);
+
+	AssertMockLtsyStatusL();
+	/*********************************************************************************************/
+	
+	CleanupStack::PopAndDestroy(networkListV2);
+	CleanupStack::PopAndDestroy(detAO);
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+	
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Use-case: Network notifications at boot-up. 
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::NotifyCurrentNetworkChange, RMobilePhone::NotifyModeChange, RMobilePhone::NotifyNITZInfoChange, RMobilePhone::NotifySignalStrengthChange  
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+ */
+void CCTsyPhoneFU::TestUseCase0003L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	TRequestStatus requestStatus1, requestStatus2, requestStatus3, requestStatus4, requestStatus5;
+	TRequestStatus mockLtsyStatus;
+	
+	//
+	// Post all the notifiers.
+	//
+	
+	// RMobilePhone::NotifyCurrentNetworkChange
+	RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfoRet;
+	TPckg<RMobilePhone::TMobilePhoneNetworkInfoV5> networkInfoRetPckg(networkInfoRet);
+	RMobilePhone::TMobilePhoneLocationAreaV1 locationAreaRet;
+	iPhone.NotifyCurrentNetworkChange(requestStatus1, networkInfoRetPckg, locationAreaRet);
+	
+	// RMobilePhone::NotifyNetworkModeChange
+	RMobilePhone::TMobilePhoneNetworkMode networkModeRet;
+	iPhone.NotifyModeChange(requestStatus2, networkModeRet);
+	
+	// RMobilePhone::NotifyNitzInfoChange
+	RMobilePhone::TMobilePhoneNITZ nitzRet;
+	iPhone.NotifyNITZInfoChange(requestStatus3, nitzRet);
+	
+	// RMobilePhone::NotifySignalStrengthChange
+	TInt32 signalStrength(0);
+	TInt8 bar(0);
+	iPhone.NotifySignalStrengthChange(requestStatus4, signalStrength, bar);
+	
+	// RMobilePhone::NotifyBatteryInfoChange
+	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoRet;
+	iPhone.NotifyBatteryInfoChange(requestStatus5, battInfoRet);
+	
+	/*
+	 * RMobilePhone::NotifyCurrentNetworkChange
+	 */
+
+	// Prepare the NotifyCurrentNetworkChange data for CompleteL
+	RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfoComplete;
+	
+    RMobilePhone::TMobilePhoneNetworkCountryCode countryCode = _L("567");
+    RMobilePhone::TMobilePhoneNetworkIdentity    cdmaSID     = _L("890");
+    RMobilePhone::TMobilePhoneNetworkIdentity    analogSID   = _L("123");
+    RMobilePhone::TMobilePhoneNetworkIdentity    networkId   = _L("56700");
+    RMobilePhone::TMobilePhoneNetworkDisplayTag  displayTag  = _L("symbian2");
+    RMobilePhone::TMobilePhoneNetworkShortName   shortName   = _L("symbian2");
+    RMobilePhone::TMobilePhoneNetworkLongName    longName    = _L("symbian2 mobile");
+
+	// V5
+	networkInfoComplete.iEgprsAvailableIndicator = ETrue;
+	networkInfoComplete.iHsdpaAvailableIndicator = EFalse;
+	// V2
+	networkInfoComplete.iAccess = RMobilePhone::ENetworkAccessGsm;
+	// V1
+	networkInfoComplete.iMode        = RMobilePhone::ENetworkModeCdma2000   ;
+	networkInfoComplete.iStatus      = RMobilePhone::ENetworkStatusAvailable;
+	networkInfoComplete.iBandInfo    = RMobilePhone::E1900BandA             ;
+	networkInfoComplete.iCountryCode = countryCode;
+	networkInfoComplete.iCdmaSID     = cdmaSID    ;
+	networkInfoComplete.iAnalogSID   = analogSID  ;
+	networkInfoComplete.iNetworkId   = networkId  ;
+	networkInfoComplete.iDisplayTag  = displayTag ;
+	networkInfoComplete.iShortName   = shortName  ;
+	networkInfoComplete.iLongName    = longName   ;
+	
+	RMobilePhone::TMobilePhoneLocationAreaV1 locationAreaComplete;
+	locationAreaComplete.iAreaKnown = ETrue;
+	locationAreaComplete.iLocationAreaCode = KLocationAreaCode;
+	locationAreaComplete.iCellId = KCellId;
+	
+    TMockLtsyData2<RMobilePhone::TMobilePhoneNetworkInfoV5, 
+                   RMobilePhone::TMobilePhoneLocationAreaV1> mockCNCData2(networkInfoComplete, locationAreaComplete);
+    
+	// Send the CompleteL to MockLtsy
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	
+	data.Close();
+	mockCNCData2.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCurrentNetworkChangeIndId, KErrNone, data);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    
+    // Check completion of api
+    User::WaitForRequest(requestStatus1);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+
+    // Check returned data
+    ASSERT_EQUALS(networkInfoRet.iMode, networkInfoComplete.iMode);
+    ASSERT_EQUALS(networkInfoRet.iStatus, networkInfoComplete.iStatus);
+    ASSERT_EQUALS(networkInfoRet.iBandInfo, networkInfoComplete.iBandInfo);
+    ASSERT_EQUALS(networkInfoRet.iCountryCode, networkInfoComplete.iCountryCode);
+    ASSERT_EQUALS(networkInfoRet.iCdmaSID, networkInfoComplete.iCdmaSID);
+    ASSERT_EQUALS(networkInfoRet.iAnalogSID, networkInfoComplete.iAnalogSID);
+    ASSERT_EQUALS(networkInfoRet.iNetworkId, networkInfoComplete.iNetworkId);
+    ASSERT_EQUALS(networkInfoComplete.iDisplayTag, networkInfoComplete.iDisplayTag);
+    ASSERT_EQUALS(networkInfoComplete.iShortName, networkInfoComplete.iShortName);
+    ASSERT_EQUALS(networkInfoComplete.iLongName, networkInfoComplete.iLongName);
+
+    ASSERT_EQUALS(locationAreaRet.iAreaKnown, locationAreaComplete.iAreaKnown);
+    ASSERT_EQUALS(locationAreaRet.iLocationAreaCode, locationAreaComplete.iLocationAreaCode);
+    ASSERT_EQUALS(locationAreaRet.iCellId, locationAreaComplete.iCellId);
+    
+	/*
+	 * RMobilePhone::NotifyNetworkModeChange
+	 */
+    
+	// Prepare the NotifyNetworkModeChange data for CompleteL
+    RMobilePhone::TMobilePhoneNetworkMode networkModeComplete;
+    
+    networkModeComplete = RMobilePhone::ENetworkModeCdma95;
+
+    TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkMode> mockNMCData1(networkModeComplete);
+    
+	// Send the CompleteL to MockLtsy
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	
+	data.Close();
+	mockNMCData1.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkModeChangeIndId, KErrNone, data);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    
+    // Check completion of api
+    User::WaitForRequest(requestStatus2);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+    
+    // Check returned data
+    ASSERT_EQUALS(networkModeRet, networkModeComplete);
+    
+	/*
+	 * RMobilePhone::NotifyNitzInfoChange
+	 */
+    
+    // Prepare the NotifyNetworkModeChange data for CompleteL
+    RMobilePhone::TMobilePhoneNITZ nitzComplete(2007, EOctober, 18, 16,  0,  0, 0);
+    
+	RMobilePhone::TMobilePhoneNetworkShortName mobilePhoneNetworkShortName = _L("ShortName");
+	RMobilePhone::TMobilePhoneNetworkLongName mobilePhoneNetworkLongName = _L("MyLongName");
+	TInt32 nitzFieldsUsed = RMobilePhone::KCapsTimeAvailable |
+							RMobilePhone::KCapsTimezoneAvailable |
+							RMobilePhone::KCapsDSTAvailable |
+							RMobilePhone::KCapsShortNameAvailable |
+							RMobilePhone::KCapsLongNameAvailable;
+	
+	TInt timeZone = 10;
+	TInt DST = 5;
+	
+	nitzComplete.iShortNetworkId = mobilePhoneNetworkShortName;
+	nitzComplete.iLongNetworkId = mobilePhoneNetworkLongName;
+	nitzComplete.iNitzFieldsUsed = nitzFieldsUsed;
+	nitzComplete.iTimeZone = timeZone;
+	nitzComplete.iDST = DST;
+	
+	TMockLtsyData1<RMobilePhone::TMobilePhoneNITZ> mockNitzData1(nitzComplete);
+	
+	// Send the CompleteL to MockLtsy
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	
+	data.Close();
+	mockNitzData1.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNitzInfoChangeIndId, KErrNone, data);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    
+    // Check completion of api
+    User::WaitForRequest(requestStatus3);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus3.Int());
+    
+    // Check returned data
+    ASSERT_EQUALS(nitzRet.iNitzFieldsUsed, nitzComplete.iNitzFieldsUsed);
+    ASSERT_EQUALS(nitzRet.iTimeZone, nitzComplete.iTimeZone);
+    ASSERT_EQUALS(nitzRet.iDST, nitzComplete.iDST);
+    // Note: CTSY will overwrite the iShortNetworkId and iLongNetworkId fields in the NITZ data
+    // if it all ready holds values for them from previous notifications (such as a NotifyCurrentNetworkChange).
+    // We therefore compare with values from a TMobilePhoneNetworkInfoV5 which was received earlier in the test.
+    ASSERT_EQUALS(nitzRet.iShortNetworkId, networkInfoComplete.iShortName);
+    ASSERT_EQUALS(nitzRet.iLongNetworkId, networkInfoComplete.iLongName);
+    
+	/*
+	 * RMobilePhone::NotifySignalStrengthChange
+	 */
+    
+    // Prepare the NotifySignalStrengthChange data for CompleteL
+	TInt32 signalStrengthComplete(70);
+	TInt8 barComplete(3);
+	
+	TMockLtsyData2<TInt32, TInt8> mockSigSthData2(signalStrengthComplete, barComplete);
+	
+	// Send the CompleteL to MockLtsy
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	
+	data.Close();
+	mockSigSthData2.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifySignalStrengthChangeIndId, KErrNone, data);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    
+    // Check completion of api
+    User::WaitForRequest(requestStatus4);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus4.Int());
+    
+    // Check returned data
+    ASSERT_EQUALS(signalStrength, signalStrengthComplete);
+    ASSERT_EQUALS(bar, barComplete);
+    
+	/*
+	 * RMobilePhone::NotifyBatteryInfoChange
+	 */
+    
+    // Prepare the NotifyBatteryInfoChange data for CompleteL
+    RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoComplete;
+    battInfoComplete.iStatus = RMobilePhone::EBatteryConnectedButExternallyPowered;
+    battInfoComplete.iChargeLevel = 99;
+    
+    TMockLtsyData1<RMobilePhone::TMobilePhoneBatteryInfoV1> mockBattData1(battInfoComplete);
+
+	// Send the CompleteL to MockLtsy
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	
+	data.Close();
+	mockBattData1.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyBatteryInfoChangeIndId, KErrNone, data);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    
+    // Check completion of api
+    User::WaitForRequest(requestStatus5);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus5.Int());
+    
+    // Check returned data
+    ASSERT_EQUALS(battInfoRet.iStatus, battInfoComplete.iStatus);
+    ASSERT_EQUALS(battInfoRet.iChargeLevel, battInfoComplete.iChargeLevel);
+    
+	data.Close();
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UC0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Use-case: Test for retrieval of network information without having to post notifiers. 
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::GetCurrentNetwork, RMobilePhone::GetNITZInfo, RMobilePhone::GetSignalStrength, RMobilePhone::GetCurrentMode
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+ */
+void CCTsyPhoneFU::TestUseCase0004L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	TRequestStatus reqStatusGetCurrentNetwork;
+	TRequestStatus reqStatusGetSigStr;
+	TRequestStatus reqStatusGetBattInfo;
+	TInt ret;
+	
+	//
+	// Invoke get api's 
+	//
+	
+	// RMobilePhone::GetCurrentNetwork
+	RMobilePhone::TMobilePhoneNetworkInfoV5 networkInfo;
+	RMobilePhone::TMobilePhoneNetworkInfoV5Pckg networkInfoPckg(networkInfo);
+	RMobilePhone::TMobilePhoneLocationAreaV1 locationArea;
+	iPhone.GetCurrentNetwork(reqStatusGetCurrentNetwork, networkInfoPckg, locationArea);
+	
+	// RMobilePhone::GetNITZInfo
+	RMobilePhone::TMobilePhoneNITZ nitzRet;
+	ret = iPhone.GetNITZInfo(nitzRet);
+	ASSERT_EQUALS(ret, KErrNone);
+
+	// RMobilePhone::GetSignalStrength
+	TInt32 signalStrength(0);
+	TInt8 bar(0);
+	iPhone.GetSignalStrength(reqStatusGetSigStr, signalStrength, bar);
+	
+	// RMobilePhone::GetCurrentMode
+	RMobilePhone::TMobilePhoneNetworkMode mode;
+	ret = iPhone.GetCurrentMode(mode);
+	ASSERT_EQUALS(ret, KErrNone);
+	
+	// RMobilePhone::GetBatteryInfo
+	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfo;
+	iPhone.GetBatteryInfo(reqStatusGetBattInfo, battInfo);
+
+	//
+	// Check returned values
+	//
+	
+	// Check RMobilePhone::GetCurrentMode returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
+	ASSERT_EQUALS(mode, KNetworkMode);  // Note mode is given different value to that retrieved from GetCurrentNetwork for sake of the test.
+	
+	// Check RMobilePhone::GetCurrentNetwork returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
+	User::WaitForRequest(reqStatusGetCurrentNetwork);
+	ASSERT_EQUALS(reqStatusGetCurrentNetwork.Int(), KErrNone);
+	ASSERT_EQUALS(networkInfo.iEgprsAvailableIndicator, KEgprsAvailable);
+	ASSERT_EQUALS(networkInfo.iHsdpaAvailableIndicator, KHsdpaAvailable);
+	ASSERT_EQUALS(networkInfo.iAccess, KAccess);
+	ASSERT_EQUALS(networkInfo.iMode, KMode);
+	ASSERT_EQUALS(networkInfo.iStatus, KStatus);
+	ASSERT_EQUALS(networkInfo.iBandInfo, KBandInfo);
+	ASSERT_EQUALS(networkInfo.iCountryCode, KCountryCode);
+	ASSERT_EQUALS(networkInfo.iCdmaSID, KCdmaSID);
+	ASSERT_EQUALS(networkInfo.iAnalogSID, KAnalogSID);
+	ASSERT_EQUALS(networkInfo.iNetworkId, KNetworkId);
+	ASSERT_EQUALS(networkInfo.iDisplayTag, KDisplayTag);
+	ASSERT_EQUALS(networkInfo.iShortName, KShortName);
+	ASSERT_EQUALS(networkInfo.iLongName, KLongName);
+	
+	ASSERT_EQUALS(locationArea.iAreaKnown, KAreaKnown);
+	ASSERT_EQUALS(locationArea.iLocationAreaCode, KLocationAreaCode);
+	ASSERT_EQUALS(locationArea.iCellId, KCellId);
+	
+	//Do tests for TMobilePhoneNetworkInfoV1 and TMobilePhoneNetworkInfoV2 ?
+	
+	// Check RMobilePhone::GetNITZInfo returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
+	ASSERT_EQUALS(nitzRet.iShortNetworkId, KShortName);
+	ASSERT_EQUALS(nitzRet.iLongNetworkId, KLongName);
+	ASSERT_EQUALS(nitzRet.iNitzFieldsUsed, KNitzFieldsUsed);
+	ASSERT_EQUALS(nitzRet.iTimeZone, KTimeZone);
+	ASSERT_EQUALS(nitzRet.iDST, KDst);
+	
+	// Check RMobilePhone::GetSignalStrength returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
+	// RMobilePhone::GetSignalStrength
+	User::WaitForRequest(reqStatusGetSigStr);
+	ASSERT_EQUALS(reqStatusGetSigStr.Int(), KErrNone);
+	ASSERT_EQUALS(signalStrength, KSignalStrength);
+	ASSERT_EQUALS(bar, KBar);
+	
+	// Check RMobilePhone::GetBatteryInfo returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
+	User::WaitForRequest(reqStatusGetBattInfo);
+	ASSERT_EQUALS(reqStatusGetBattInfo.Int(), KErrNone);
+	ASSERT_EQUALS(battInfo.iStatus, KBatteryStatus); 
+	ASSERT_EQUALS(battInfo.iChargeLevel, KBatteryChargeLevel);
+	
+	data.Close();
+	
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	}
+
+
+
+//
+// Other unit tests
+//
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0001
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for receiving indication of RF status change.
+@SYMTestPriority High
+@SYMTestActions Invokes xxxx
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0001L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	TRequestStatus mockLtsyStatus;
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+		
+	TRfStateInfo rfstatus = ERfsStateInfoInactive;
+	TMockLtsyData1<TRfStateInfo> rfstatdata(rfstatus);
+	rfstatdata.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyRfStatusChangeIndId,KErrNone, data, 0);
+	
+	User::WaitForRequest(mockLtsyStatus);
+	
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	
+	}
+	
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0002
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for retrieving the Phone Identity
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::GetPhoneId
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0002L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RBuf8 data;
+	CleanupClosePushL(data);	
+
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetPhoneId::KLtsyDispatchPhoneGetPhoneIdApiId);
+	
+	_LIT(KManufacturer, "Manufacturer XYZ");
+	_LIT(KModel, "Model XYZ");	
+	_LIT(KRevision, "Revision abc");
+	_LIT(KSerialNumber, "SerialNumber 1234");
+	//_LIT(KSerialNumberShort15, "SNum 1234");
+	
+	RMobilePhone::TMobilePhoneIdentityV1 phoneId;
+	phoneId.iManufacturer = KManufacturer;
+	phoneId.iModel = KModel;
+	phoneId.iRevision = KRevision;
+	phoneId.iSerialNumber = KSerialNumber;
+	
+	TMockLtsyData1<RMobilePhone::TMobilePhoneIdentityV1> phoneIdData(phoneId);
+	data.Close();
+	phoneIdData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetPhoneId::KLtsyDispatchPhoneGetPhoneIdApiId, KErrNone, data);
+	
+	// IPC call
+	TRequestStatus reqStatus;
+	RMobilePhone::TMobilePhoneIdentityV1 id;
+	iPhone.GetPhoneId(reqStatus, id);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(KErrNone, reqStatus.Int());
+	
+	ASSERT_EQUALS(phoneId.iManufacturer, id.iManufacturer);
+	ASSERT_EQUALS(phoneId.iModel, id.iModel);
+	ASSERT_EQUALS(phoneId.iRevision, id.iRevision);
+	ASSERT_EQUALS(phoneId.iSerialNumber, id.iSerialNumber);
+
+	data.Close();
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	}
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0003
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for retrieving the service provider name
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::GetServiceProviderName
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0003L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RBuf8 data;
+	CleanupClosePushL(data);	
+
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetServiceProviderName::KLtsyDispatchPhoneGetServiceProviderNameApiId);
+	
+	_LIT(KPLMNField, "plmn123");
+	_LIT(KSPName, "spn123");
+		
+	RMobilePhone::TMobilePhoneServiceProviderNameV2 spnExp;
+	spnExp.iDisplayReq = RMobilePhone::KDisplayPLMNRequired | RMobilePhone::KDisplaySPNRequired;
+	spnExp.iPLMNField  = KPLMNField;
+	spnExp.iSPName = KSPName;
+	
+	TMockLtsyData1<RMobilePhone::TMobilePhoneServiceProviderNameV2> spnData(spnExp);
+	data.Close();
+	spnData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetServiceProviderName::KLtsyDispatchPhoneGetServiceProviderNameApiId, KErrNone, data);
+	
+	// IPC call
+	TRequestStatus reqStatus;
+	RMobilePhone::TMobilePhoneServiceProviderNameV2 spn;
+	RMobilePhone::TMobilePhoneServiceProviderNameV2Pckg spnPkg(spn);
+	
+	iPhone.GetServiceProviderName(reqStatus, spnPkg);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(KErrNone, reqStatus.Int());	
+	ASSERT_EQUALS(spn.iDisplayReq, spnExp.iDisplayReq);
+	ASSERT_EQUALS(spn.iPLMNField, spnExp.iPLMNField);
+	ASSERT_EQUALS(spn.iSPName, spnExp.iSPName);
+		
+	data.Close();
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0004
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling a Get detected network list
+@SYMTestPriority High
+@SYMTestActions Invokes CGetDetectedNetworksAO::Cancel
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0004L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	CGetDetectedNetworksAO* detAO = CGetDetectedNetworksAO::NewLC(iPhone,iMockLTSY);
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetDetectedNetworks::KLtsyDispatchPhoneGetDetectedNetworksApiId, KErrNone);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetDetectedNetworksCancel::KLtsyDispatchPhoneGetDetectedNetworksCancelApiId, KErrNone);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetDetectedNetworksCancel::KLtsyDispatchPhoneGetDetectedNetworksCancelApiId, KErrNone);
+
+	detAO->TestCancel();
+	
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(detAO);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0005
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling for a manual network selection
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::CancelAsyncRequest(EMobilePhoneSelectNetwork)
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0005L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	//setup ETel required data
+	_LIT(KCountryCode, "1234");
+	_LIT(KNetworkId, "12345678");
+
+	RMobilePhone::TMobilePhoneNetworkManualSelection selection;
+	selection.iCountry = KCountryCode;
+	selection.iNetwork = KNetworkId;
+	
+	TBool isManual = ETrue;
+	
+    TMockLtsyData2<TBool,RMobilePhone::TMobilePhoneNetworkManualSelection> selectData(isManual,selection);
+
+    selectData.SerialiseL(data);
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSelectNetwork::KLtsyDispatchPhoneSelectNetworkApiId, data, KErrNone);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSelectNetworkCancel::KLtsyDispatchPhoneSelectNetworkCancelApiId, KErrNone);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSelectNetworkCancel::KLtsyDispatchPhoneSelectNetworkCancelApiId, KErrNone);
+
+	TRequestStatus status;
+	iPhone.SelectNetwork(status,isManual,selection);
+	iPhone.CancelAsyncRequest(EMobilePhoneSelectNetwork);
+	User::WaitForRequest(status);	
+	
+	AssertMockLtsyStatusL();
+
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0006
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY network selection change notification
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::NotifyNetworkSelectionSettingChange
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0006L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+	//set up the set data
+	RMobilePhone::TMobilePhoneSelectionMethod phoneNetworkSelection;
+	phoneNetworkSelection = RMobilePhone::ENetworkSelectionManual;
+
+	//set up the Mock LTSY data
+	TMockLtsyData1<RMobilePhone::TMobilePhoneSelectionMethod> phoneNetworkSelectionData(phoneNetworkSelection);
+	phoneNetworkSelectionData.SerialiseL(data);
+	//set up Mock LTSY expect and completes 
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkSelectionSettingChangeIndId, KErrNone, data);
+	
+	//ETel calls
+	TRequestStatus status;
+	//set up the notified data
+	RMobilePhone::TMobilePhoneNetworkSelectionV1 notifiedPhoneNetworkSelection;
+	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg notifiedPckg(notifiedPhoneNetworkSelection);
+	iPhone.NotifyNetworkSelectionSettingChange(status,notifiedPckg);
+
+	User::WaitForRequest(status);
+	
+	//CTSY sets iBandClass and iOperationMode to defults values
+	ASSERT_EQUALS(phoneNetworkSelection,notifiedPhoneNetworkSelection.iMethod);
+	ASSERT_EQUALS(RMobilePhone::ENetworkBandClassUnknown,notifiedPhoneNetworkSelection.iBandClass);
+	ASSERT_EQUALS(RMobilePhone::ENetworkOperationUnknown,notifiedPhoneNetworkSelection.iOperationMode);
+	AssertMockLtsyStatusL();
+	
+	
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0007
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support for battery information change notification.
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::NotifyBatteryInfoChange
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0007L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+	TRequestStatus mockLtsyStatus;
+	TRequestStatus requestStatus;
+	
+	// Post notifier RMobilePhone::NotifyBatteryInfoChange
+	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoRet;
+	iPhone.NotifyBatteryInfoChange(requestStatus, battInfoRet);
+	
+    // Prepare the NotifyBatteryInfoChange data for CompleteL
+    RMobilePhone::TMobilePhoneBatteryInfoV1 battInfoComplete;
+    battInfoComplete.iStatus = RMobilePhone::EBatteryConnectedButExternallyPowered;
+    battInfoComplete.iChargeLevel = 99;
+    
+    TMockLtsyData1<RMobilePhone::TMobilePhoneBatteryInfoV1> mockBattData1(battInfoComplete);
+
+	// Send the CompleteL to MockLtsy
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	
+	data.Close();
+	mockBattData1.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyBatteryInfoChangeIndId, KErrNone, data);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    
+    // Check completion of api
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    
+    // Check returned data
+    ASSERT_EQUALS(battInfoRet.iStatus, battInfoComplete.iStatus);
+    ASSERT_EQUALS(battInfoRet.iChargeLevel, battInfoComplete.iChargeLevel);
+	
+	data.Close();
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0008
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support for retrieval battery information without having to post a notification.
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::GetBatteryInfo
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0008L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	TRequestStatus reqStatus;
+	
+	RMobilePhone::TMobilePhoneBatteryInfoV1 battInfo;
+	iPhone.GetBatteryInfo(reqStatus, battInfo);
+	
+	// Check RMobilePhone::GetBatteryInfo returned data against the data that was set up in CCtsyComponentTestBase::OpenPhoneL()
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
+	ASSERT_EQUALS(battInfo.iStatus, KBatteryStatus); 
+	ASSERT_EQUALS(battInfo.iChargeLevel, KBatteryChargeLevel);
+	
+	data.Close();
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0009
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test support for network registration change notification.
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::NotifyNetworkRegistrationStatusChange
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0009L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+	TRequestStatus mockLtsyStatus;
+	TRequestStatus requestStatus;
+	
+	// Post notifier RMobilePhone::NotifyNetworkRegistrationStatusChange
+	RMobilePhone::TMobilePhoneRegistrationStatus regStatus;
+	iPhone.NotifyNetworkRegistrationStatusChange(requestStatus, regStatus);
+	
+    // Prepare the NotifyNetworkRegistrationStatusChange data for CompleteL
+	// The Ctsy expects RMobilePhone::TMobilePhoneRegistrationStatus
+	RMobilePhone::TMobilePhoneRegistrationStatus regStatusComplete;
+	// Note: the registration status is made different to that set during phone boot-up intentionally
+	regStatusComplete = RMobilePhone::ERegisteredRoaming;
+    
+    TMockLtsyData1<RMobilePhone::TMobilePhoneRegistrationStatus> mockNetRegData1(regStatusComplete);
+
+	// Send the CompleteL to MockLtsy
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	
+	data.Close();
+	mockNetRegData1.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkRegistrationStatusChangeIndId, KErrNone, data);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+    
+    // Check completion of api
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    
+    // Check returned data
+    ASSERT_EQUALS(regStatus, regStatusComplete);
+	
+	data.Close();
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(2, this); // data, this
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0010
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of NSPS (No Signal, Power Save) notification and waking
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::NotifyNSPSStatus and RMmCustomAPI::NetWakeup
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0010L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TRequestStatus reqStatus;
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	RMmCustomAPI::TNspsStatus nspsStatus;
+
+	TBool nspsEnabled = ETrue;
+	TMockLtsyData1<TBool> nspsStatusData(nspsEnabled);
+
+	
+	customApi.NotifyNSPSStatus(reqStatus,nspsStatus);
+	
+	data.Close();
+	nspsStatusData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNspsStatusChangeIndId, KErrNone, data);
+
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(KErrNone, reqStatus.Int());
+	ASSERT_EQUALS(RMmCustomAPI::ENspsOn, nspsStatus);
+
+	AssertMockLtsyStatusL();
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneNspsWakeup::KLtsyDispatchPhoneNspsWakeupApiId, KErrNone);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneNspsWakeup::KLtsyDispatchPhoneNspsWakeupApiId, KErrNone);
+    customApi.NetWakeup(reqStatus);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(KErrNone, reqStatus.Int());
+	
+	customApi.NotifyNSPSStatus(reqStatus,nspsStatus);
+	nspsEnabled = EFalse;
+	data.Close();
+	nspsStatusData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNspsStatusChangeIndId, KErrNone, data);
+	data.Close();
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(KErrNone, reqStatus.Int());
+	ASSERT_EQUALS(RMmCustomAPI::ENspsOff, nspsStatus);
+
+	
+	AssertMockLtsyStatusL();
+		
+	
+	CleanupStack::PopAndDestroy(&customApi);
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0011
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of Edge Gprs notification
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::NotifyEGprsInfoChange
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0011L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	TRequestStatus reqStatus;
+	
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+	
+	RPacketService packetService;
+	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
+	
+	// custom API info
+	RMmCustomAPI::TGprsInformation gprsInformation;
+	RMmCustomAPI::TGprsInformationPckg gprsInformationPckg(gprsInformation);
+	
+
+	// test the case when Edge is not supported
+	TBool edgeSupported = EFalse;
+	TMockLtsyData1<TBool> egprsInfoData(edgeSupported);
+	egprsInfoData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyEgprsInfoChangeIndId, KErrNone, data);
+	data.Close();
+		
+	customApi.NotifyEGprsInfoChange(reqStatus,gprsInformationPckg);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
+	ASSERT_EQUALS(gprsInformation.iGprsInfo,RMmCustomAPI::EGprs);
+	AssertMockLtsyStatusL();
+	
+	// test the case when Edge is supported
+	edgeSupported = ETrue;
+	egprsInfoData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyEgprsInfoChangeIndId, KErrNone, data);
+	data.Close();
+
+	customApi.NotifyEGprsInfoChange(reqStatus,gprsInformationPckg);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
+	ASSERT_EQUALS(gprsInformation.iGprsInfo ,RMmCustomAPI::EEdgeGprs);
+	AssertMockLtsyStatusL();
+
+	
+	// test the case when Edge is supported and KErrGeneral returned, (error returned not used in the CTSY)
+	edgeSupported = ETrue;
+	egprsInfoData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyEgprsInfoChangeIndId, KErrGeneral, data);
+	data.Close();
+
+	customApi.NotifyEGprsInfoChange(reqStatus,gprsInformationPckg);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
+	ASSERT_EQUALS(gprsInformation.iGprsInfo ,RMmCustomAPI::EEdgeGprs);
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(&packetService);
+	CleanupStack::PopAndDestroy(&customApi);
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0012
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of Getting the Fdn Status
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::GetFdnStatus() (Sync and Async)
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0012L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	TRequestStatus reqStatus;
+	
+	OpenPhoneL();
+	
+	//test the case where the LTSY returns KErrNone - asynchronous call
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId);
+
+	RMobilePhone::TMobilePhoneFdnStatus compFdnStatus = RMobilePhone::EFdnNotActive;
+	TMockLtsyData1<RMobilePhone::TMobilePhoneFdnStatus> fdnStatusData(compFdnStatus);
+	fdnStatusData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId,KErrNone,data);
+	data.Close();
+	
+	RMobilePhone::TMobilePhoneFdnStatus fdnStatus = RMobilePhone::EFdnUnknown;
+	iPhone.GetFdnStatus(reqStatus,fdnStatus);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
+	ASSERT_EQUALS(compFdnStatus,fdnStatus);
+	AssertMockLtsyStatusL();
+
+	//test the case where the LTSY returns KErrGeneral - asynchronous call
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId);
+
+	compFdnStatus = RMobilePhone::EFdnNotActive;
+	fdnStatusData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId,KErrGeneral,data);
+	data.Close();
+
+	fdnStatus = RMobilePhone::EFdnUnknown;
+	iPhone.GetFdnStatus(reqStatus,fdnStatus);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
+	AssertMockLtsyStatusL();
+
+	//test the case where the LTSY returns KErrNone - synchronous call
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId);
+
+	compFdnStatus = RMobilePhone::EFdnNotActive;
+	fdnStatusData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetFdnStatus::KLtsyDispatchPhoneGetFdnStatusApiId,KErrNone,data);
+	data.Close();
+	
+	fdnStatus = RMobilePhone::EFdnUnknown;
+	ASSERT_EQUALS(iPhone.GetFdnStatus(fdnStatus), KErrNone);
+	ASSERT_EQUALS(compFdnStatus,fdnStatus);
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0013
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of Set Network Selection Setting error case
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::NotifyNetworkSelectionSettingChange() RMobilePhone::SetNetworkSelectionSetting()
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0013L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+	
+	//set up the notified data
+	RMobilePhone::TMobilePhoneNetworkSelectionV1 notifiedPhoneNetworkSelection;
+	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg notifiedPckg(notifiedPhoneNetworkSelection);
+
+	//set up the set data
+	RMobilePhone::TMobilePhoneNetworkSelectionV1 phoneNetworkSelection;
+	phoneNetworkSelection.iMethod 			= RMobilePhone::ENetworkSelectionManual;
+	phoneNetworkSelection.iBandClass		= RMobilePhone::ENetworkBandClassAOnly;
+	phoneNetworkSelection.iOperationMode	= RMobilePhone::ENetworkOperationAnalogPreferred;
+
+	RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg setPckg(phoneNetworkSelection);
+
+	//set up the Mock LTSY data
+	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkSelectionV1> phoneNetworkSelectionExpData(phoneNetworkSelection);
+	phoneNetworkSelectionExpData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, data, KErrNone);
+	data.Close();
+	
+	TMockLtsyData1<RMobilePhone::TMobilePhoneSelectionMethod> phoneNetworkSelectionCompData(phoneNetworkSelection.iMethod);
+	phoneNetworkSelectionCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetNetworkSelectionSetting::KLtsyDispatchPhoneSetNetworkSelectionSettingApiId, KErrGeneral, data);
+	data.Close();
+
+	//ETel calls
+	TRequestStatus notifyStatus;
+	iPhone.NotifyNetworkSelectionSettingChange(notifyStatus,notifiedPckg);
+	
+	TRequestStatus setNetworkSelectionStatus;
+	iPhone.SetNetworkSelectionSetting(setNetworkSelectionStatus,setPckg);
+	
+	User::WaitForRequest(setNetworkSelectionStatus);
+	ASSERT_EQUALS(setNetworkSelectionStatus.Int(),KErrGeneral);
+	ASSERT_EQUALS(notifyStatus.Int(),KRequestPending);
+		
+	//CTSY sets iBandClass and iOperationMode to defults values
+	ASSERT_EQUALS(RMobilePhone::ENetworkSelectionUnknown,notifiedPhoneNetworkSelection.iMethod);
+	ASSERT_EQUALS(RMobilePhone::ENetworkBandClassUnknown,notifiedPhoneNetworkSelection.iBandClass);
+	ASSERT_EQUALS(RMobilePhone::ENetworkOperationUnknown,notifiedPhoneNetworkSelection.iOperationMode);
+	AssertMockLtsyStatusL();
+
+	iPhone.CancelAsyncRequest(EMobilePhoneNotifyNetworkSelectionSettingChange);
+	ASSERT_EQUALS(notifyStatus.Int(),KErrCancel);
+		
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0014
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::NotifyNetworkConnectionFailure
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::NotifyNetworkConnectionFailure
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0014L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    TRequestStatus requestStatus;
+    customApi.NotifyNetworkConnectionFailure(requestStatus);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyNetworkConnectionFailureIndId, KErrNone);
+	User::WaitForRequest(requestStatus);
+
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0015
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::NotifyDtmfEvent
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::NotifyDtmfEvent
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0015L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    TRequestStatus requestStatus;
+    RMmCustomAPI::TDtmfInfo info;
+    customApi.NotifyDtmfEvent(requestStatus, info);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+    RMmCustomAPI::TDtmfEventType compType = RMmCustomAPI::EDtmfSequence;
+    RMmCustomAPI::TDtmfEvent compEvent = RMmCustomAPI::EDtmfStop;
+    TChar compChar = '0';
+	TMockLtsyData3<RMmCustomAPI::TDtmfEventType, RMmCustomAPI::TDtmfEvent, TChar>
+        modesData(compType, compEvent, compChar);
+	data.Close();
+	modesData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchCustomPhoneNotifyDtmfEventIndId, KErrNone, data);
+	User::WaitForRequest(requestStatus);
+
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS(compType, info.iType);
+    ASSERT_EQUALS(compEvent, info.iEvent);
+    ASSERT_EQUALS(compChar, info.iTone);
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0016
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::ResetNetServer
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::ResetNetServer
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0016L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneResetNetServer::KLtsyDispatchPhoneResetNetServerApiId, KErrNone);
+
+    TRequestStatus requestStatus;
+    customApi.ResetNetServer(requestStatus);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneResetNetServer::KLtsyDispatchPhoneResetNetServerApiId, KErrNone);
+	User::WaitForRequest(requestStatus);
+
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(2, this); // customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0017
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::SetAlwaysOn
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::SetAlwaysOn
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0017L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    // Open a packet service, ctsy must have a packet service sub session in order to activate the SetAlwaysOn 
+	
+	RPacketService packetService;
+	OpenPacketServiceLC(packetService,RPacketService::EStatusUnattached);
+
+    RMmCustomAPI::TSetAlwaysOnMode expData = RMmCustomAPI::EAlwaysModeBoth;
+	TMockLtsyData1<RMmCustomAPI::TSetAlwaysOnMode> modesData(expData);
+	data.Close();
+	modesData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetAlwaysOnMode::KLtsyDispatchPhoneSetAlwaysOnModeApiId, data, KErrNone);
+
+    TRequestStatus requestStatus;
+    customApi.SetAlwaysOn(requestStatus, expData);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetAlwaysOnMode::KLtsyDispatchPhoneSetAlwaysOnModeApiId, KErrNone);
+	User::WaitForRequest(requestStatus);
+
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(4, this); // packetService, data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0018
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::SetDriveMode
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::SetDriveMode
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0018L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    RMmCustomAPI::TSetDriveMode expData = RMmCustomAPI::EActivateDriveMode;
+	TMockLtsyData1<RMmCustomAPI::TSetDriveMode> modesData(expData);
+	data.Close();
+	modesData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetDriveMode::KLtsyDispatchPhoneSetDriveModeApiId, data, KErrNone);
+
+    TRequestStatus requestStatus;
+    customApi.SetDriveMode(requestStatus, RMmCustomAPI::EActivateDriveMode);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetDriveMode::KLtsyDispatchPhoneSetDriveModeApiId, KErrNone);
+	User::WaitForRequest(requestStatus);
+
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0019
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::ReadHSxPAStatus, RMmCustomAPI::WriteHSxPAStatus and RMmCustomAPI::NotifyHSxPAStatus
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::ReadHSxPAStatus, RMmCustomAPI::WriteHSxPAStatus and RMmCustomAPI::NotifyHSxPAStatus
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0019L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    // Register Notification
+    RMmCustomAPI::THSxPAStatus notifyHspaStatus;
+    TRequestStatus notifyRequestStatus;
+    customApi.NotifyHSxPAStatus(notifyRequestStatus, notifyHspaStatus);
+    ASSERT_EQUALS(KRequestPending, notifyRequestStatus.Int());
+
+    // Expect for setter
+    RMmCustomAPI::THSxPAStatus expSetHspaStatus = RMmCustomAPI::EHSxPAEnabled;
+	TMockLtsyData1<RMmCustomAPI::THSxPAStatus> expSetData(expSetHspaStatus);
+	data.Close();
+	expSetData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetHspaStatus::KLtsyDispatchPhoneSetHspaStatusApiId, data, KErrNone);
+
+    // Set the data
+    TRequestStatus setRequestStatus;
+    RMmCustomAPI::THSxPAStatus setHspaStatus = expSetHspaStatus;
+    customApi.WriteHSxPAStatus(setRequestStatus, setHspaStatus);
+	ASSERT_EQUALS(KRequestPending, setRequestStatus.Int());
+
+    // Complete the set
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetHspaStatus::KLtsyDispatchPhoneSetHspaStatusApiId, KErrNone);
+	User::WaitForRequest(setRequestStatus);
+	ASSERT_EQUALS(KErrNone, setRequestStatus.Int());
+
+    // Expect for getter
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetHspaStatus::KLtsyDispatchPhoneGetHspaStatusApiId, KErrNone);
+
+    // get the data
+    TRequestStatus getRequestStatus;
+    RMmCustomAPI::THSxPAStatus getHspaStatus;
+    customApi.ReadHSxPAStatus(getRequestStatus, getHspaStatus);
+	ASSERT_EQUALS(KRequestPending, getRequestStatus.Int());
+
+    // Complete the get
+    RMmCustomAPI::THSxPAStatus compGetHspaStatus = RMmCustomAPI::EHSxPAEnabled;
+	TMockLtsyData1<RMmCustomAPI::THSxPAStatus> compGetData(compGetHspaStatus);
+	data.Close();
+	compGetData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetHspaStatus::KLtsyDispatchPhoneGetHspaStatusApiId, KErrNone, data);
+	User::WaitForRequest(getRequestStatus);
+	ASSERT_EQUALS(KErrNone, getRequestStatus.Int());
+    ASSERT_EQUALS(compGetHspaStatus, getHspaStatus);
+
+    // notify a change
+    RMmCustomAPI::THSxPAStatus compNotifyHspaStatus = RMmCustomAPI::EHSxPADisabled;
+	TMockLtsyData1<RMmCustomAPI::THSxPAStatus> compNotiftData(compNotifyHspaStatus);
+	data.Close();
+	compNotiftData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyHspaStatusChangedIndId, KErrNone, data);
+	User::WaitForRequest(notifyRequestStatus);
+	ASSERT_EQUALS(KErrNone, notifyRequestStatus.Int());
+    ASSERT_EQUALS(compNotifyHspaStatus, notifyHspaStatus);
+    
+    
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0020
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::GetNetworkProviderName
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::GetNetworkProviderName
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0020L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    // Checking the synch API version
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone);
+	_LIT(KNetworkProviderName, "Provider Name");
+    RMobilePhone::TMobilePhoneNetworkLongName completeData(KNetworkProviderName);
+	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkLongName> nameData(completeData);
+	data.Close();
+	nameData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone, data);
+    RMobilePhone::TMobilePhoneNetworkLongName name;
+	ASSERT_EQUALS(KErrNone, customApi.GetNetworkProviderName(name));
+    ASSERT_EQUALS(name, completeData);
+
+    // Checking the asynch API version
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone);
+	_LIT(KNetworkProviderName2, "Provider Name 2");
+    RMobilePhone::TMobilePhoneNetworkLongName completeData2(KNetworkProviderName2);
+	TMockLtsyData1<RMobilePhone::TMobilePhoneNetworkLongName> nameData2(completeData2);
+	data.Close();
+	nameData2.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetNetworkProviderName::KLtsyDispatchPhoneGetNetworkProviderNameApiId, KErrNone, data);
+    TRequestStatus status;
+	customApi.GetNetworkProviderName(status, name);
+	User::WaitForRequest(status);
+    ASSERT_EQUALS(status.Int(), KErrNone);
+    ASSERT_EQUALS(name, completeData2);
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0021
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::GetOperatorName
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::GetOperatorName
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0021L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetOperatorName::KLtsyDispatchPhoneGetOperatorNameApiId, KErrNone);
+
+    TRequestStatus getRequestStatus;
+    RMmCustomAPI::TOperatorNameInfo getNameInfo;
+    customApi.GetOperatorName(getRequestStatus, getNameInfo);
+	ASSERT_EQUALS(KRequestPending, getRequestStatus.Int());
+    
+    RMmCustomAPI::TOperatorNameType compType = RMmCustomAPI::EOperatorNameProgrammableLatin;
+	_LIT(KNetworkOperatorName, "Network Operator Name");
+    TBuf<KMaxOperatorNameLength> compName(KNetworkOperatorName);
+	TMockLtsyData2<RMmCustomAPI::TOperatorNameType, TBuf<KMaxOperatorNameLength> > modesData(compType, compName);
+	data.Close();
+	modesData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetOperatorName::KLtsyDispatchPhoneGetOperatorNameApiId, KErrNone, data);
+
+   	User::WaitForRequest(getRequestStatus);
+	ASSERT_EQUALS(KErrNone, getRequestStatus.Int());
+    ASSERT_EQUALS(compType, getNameInfo.iType);
+    ASSERT_EQUALS(compName, getNameInfo.iName);
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0022
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::SetSystemNetworkMode
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkMode
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0022L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    // Check synch version of the API
+    RMmCustomAPI::TNetworkModeCaps mode = RMmCustomAPI::KCapsNetworkModeUmts;
+	TMockLtsyData1<RMmCustomAPI::TNetworkModeCaps> modeData(mode);
+	data.Close();
+	modeData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, data, KErrNone);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, KErrNone);
+	ASSERT_EQUALS(KErrNone, customApi.SetSystemNetworkMode(mode));
+
+    // Check asynch version of the API
+    TRequestStatus status;
+    mode = RMmCustomAPI::KCapsNetworkModeDual;
+	TMockLtsyData1<RMmCustomAPI::TNetworkModeCaps> modeData2(mode);
+	data.Close();
+	modeData2.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, data, KErrNone);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetSystemNetworkMode::KLtsyDispatchPhoneSetSystemNetworkModeApiId, KErrNone);
+    customApi.SetSystemNetworkMode(status, mode);
+   	User::WaitForRequest(status);
+	ASSERT_EQUALS(KErrNone, status.Int());
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0023
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::GetCurrentSystemNetworkModes
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::GetCurrentSystemNetworkModes
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0023L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    // Check the synch version of the API
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone);
+    TUint32 compModes = RMmCustomAPI::KCapsNetworkModeUmts | RMmCustomAPI::KCapsNetworkModeGsm;
+	TMockLtsyData1<TUint32> modesData(compModes);
+	data.Close();
+	modesData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone, data);
+    TUint32 modes;
+	ASSERT_EQUALS(KErrNone, customApi.GetCurrentSystemNetworkModes(modes));
+    ASSERT_EQUALS(modes, compModes);
+
+    // Check the asynch version of the API
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone);
+    compModes = RMmCustomAPI::KCapsNetworkModeUmts;
+	TMockLtsyData1<TUint32> modesData2(compModes);
+	data.Close();
+	modesData2.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentSystemNetworkModes::KLtsyDispatchPhoneGetCurrentSystemNetworkModesApiId, KErrNone, data);
+    TRequestStatus status;
+    customApi.GetCurrentSystemNetworkModes(status, modes);
+   	User::WaitForRequest(status);
+	ASSERT_EQUALS(KErrNone, status.Int());
+    ASSERT_EQUALS(modes, compModes);
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0024
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::NotifyRauEvent
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::NotifyRauEvent
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0024L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    TRequestStatus requestStatus;
+    RMmCustomAPI::TRauEventStatus event;
+    customApi.NotifyRauEvent(requestStatus, event);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+    
+	RMmCustomAPI::TRauEventStatus compEvent = RMmCustomAPI::ERauEventResumed;
+	TMockLtsyData1<RMmCustomAPI::TRauEventStatus> modesData(compEvent);
+	data.Close();
+	modesData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyRauEventIndId, KErrNone, data);
+	User::WaitForRequest(requestStatus);
+
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS(compEvent, event);
+
+	CleanupStack::PopAndDestroy(3, this); // data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0025
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RMmCustomAPI::NotifyCellInfoChange and RMmCustomAPI::GetCellInfo
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::NotifyCellInfoChange and RMmCustomAPI::GetCellInfo
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0025L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    TRequestStatus requestStatus;
+    RMmCustomAPI::TMmCellInfo* completeInfo = new(ELeave) RMmCustomAPI::TMmCellInfo;
+    CleanupStack::PushL(completeInfo);
+    RMmCustomAPI::TMmCellInfo* notifyInfo = new(ELeave) RMmCustomAPI::TMmCellInfo;
+    CleanupStack::PushL(notifyInfo);
+    RMmCustomAPI::TMmCellInfoPckg *notifyInfoPckg = new(ELeave) RMmCustomAPI::TMmCellInfoPckg(*notifyInfo);
+    CleanupStack::PushL(notifyInfoPckg);
+    RMmCustomAPI::TMmCellInfo* getInfo = new(ELeave) RMmCustomAPI::TMmCellInfo;
+    CleanupStack::PushL(getInfo);
+    RMmCustomAPI::TMmCellInfoPckg *getInfoPckg = new(ELeave) RMmCustomAPI::TMmCellInfoPckg(*getInfo);
+    CleanupStack::PushL(getInfoPckg);
+	
+    // Register a notifier
+    customApi.NotifyCellInfoChange(requestStatus, *notifyInfoPckg);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    // Indicate cell changed to unknowd cell
+    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EUnknown;
+	TMockLtsyData1<RMmCustomAPI::TMmCellInfo *> modesData1(completeInfo);
+	data.Close();
+	modesData1.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangedIndId, KErrNone, data);
+
+    // Check results
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS((*completeInfo).iMode, (*notifyInfo).iMode);
+
+    // Register a notifier
+    customApi.NotifyCellInfoChange(requestStatus, *notifyInfoPckg);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    // Indicate cell changed to GSM cell with some info
+    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EGSM;
+    (*completeInfo).iGsmCellInfo.iTA = 17;
+    (*completeInfo).iGsmCellInfo.iNmr[13].iARFCN = 4;
+    (*completeInfo).iGsmCellInfo.iNmr[8].iBSIC = 44;
+    (*completeInfo).iGsmCellInfo.iNmr[11].iRxLEV = 100;
+	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData2(*completeInfo);
+	data.Close();
+	modesData2.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangedIndId, KErrNone, data);
+
+    // Check results
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS((*completeInfo).iMode, (*notifyInfo).iMode);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iTA, (*notifyInfo).iGsmCellInfo.iTA);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[13].iARFCN, (*notifyInfo).iGsmCellInfo.iNmr[13].iARFCN);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[8].iBSIC, (*notifyInfo).iGsmCellInfo.iNmr[8].iBSIC);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[11].iRxLEV, (*notifyInfo).iGsmCellInfo.iNmr[11].iRxLEV);
+
+    // Register a notifier
+    customApi.NotifyCellInfoChange(requestStatus, *notifyInfoPckg);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    // Indicate cell changed to WCDMA cell with some info
+    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EWCDMA;
+    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL = 33;
+    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL = 42;
+    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt = 18;
+    (*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode = 100;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddUL = 311;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iFrequencyInfo.iFddDL = 11;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCarrierRSSI = 25;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[3].iCID = 25;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[30].iTddInfo.iPrimaryCcpchRscp = 5;
+	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData3(*completeInfo);
+	data.Close();
+	modesData3.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangedIndId, KErrNone, data);
+
+    // Check results
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS((*completeInfo).iMode, (*notifyInfo).iMode );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL, (*notifyInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL, (*notifyInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt, (*notifyInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode, (*notifyInfo).iWcdmaCellInfo.iPrimaryScrambilingCode );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddUL, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddUL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iFrequencyInfo.iFddDL, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iFrequencyInfo.iFddDL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCarrierRSSI, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCarrierRSSI );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[3].iCID, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[3].iCID );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[30].iTddInfo.iPrimaryCcpchRscp, (*notifyInfo).iWcdmaCellInfo.iNwkMeasureReport[7].iCellMeasuredResult[30].iTddInfo.iPrimaryCcpchRscp );
+
+    // expect a GetCellInfo request
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone);
+
+    // execute the GetCellInfo request
+    customApi.GetCellInfo(requestStatus, *getInfoPckg);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    // Complete with unknown cell info
+    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EUnknown;
+	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData4(*completeInfo);
+	data.Close();
+	modesData4.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone, data);
+
+    // Check results
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS((*completeInfo).iMode, (*getInfo).iMode);
+
+    // expect a GetCellInfo request
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone);
+
+    // execute the GetCellInfo request
+    customApi.GetCellInfo(requestStatus, *getInfoPckg);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    // Complete with an GSM cell info
+    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EGSM;
+    (*completeInfo).iGsmCellInfo.iTA = 1;
+    (*completeInfo).iGsmCellInfo.iNmr[1].iARFCN = 2;
+    (*completeInfo).iGsmCellInfo.iNmr[2].iBSIC = 3;
+    (*completeInfo).iGsmCellInfo.iNmr[7].iRxLEV = 4;
+	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData5(*completeInfo);
+	data.Close();
+	modesData1.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone, data);
+
+    // Check results
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS((*completeInfo).iMode, (*getInfo).iMode);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iTA, (*getInfo).iGsmCellInfo.iTA);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[1].iARFCN, (*getInfo).iGsmCellInfo.iNmr[1].iARFCN);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[2].iBSIC, (*getInfo).iGsmCellInfo.iNmr[2].iBSIC);
+    ASSERT_EQUALS((*completeInfo).iGsmCellInfo.iNmr[7].iRxLEV, (*getInfo).iGsmCellInfo.iNmr[7].iRxLEV);
+
+    // expect a GetCellInfo request
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone);
+
+    // execute the GetCellInfo request
+    customApi.GetCellInfo(requestStatus, *getInfoPckg);
+	ASSERT_EQUALS(KRequestPending, requestStatus.Int());
+
+    // Complete with an WCDMA cell info
+    (*completeInfo).iMode = RMmCustomAPI::TMmCellInfo::EWCDMA;
+    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL = 11;
+    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL = 12;
+    (*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt = 13;
+    (*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode = 14;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[1].iFrequencyInfo.iFddUL = 1;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddDL = 2;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[3].iCarrierRSSI = 3;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iCellMeasuredResult[1].iCID = 6;
+    (*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCellMeasuredResult[2].iTddInfo.iPrimaryCcpchRscp = 8;
+	TMockLtsyData1<RMmCustomAPI::TMmCellInfo> modesData6(*completeInfo);
+	data.Close();
+	modesData1.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCellInfo::KLtsyDispatchPhoneGetCellInfoApiId, KErrNone, data);
+
+    // Check results
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+    ASSERT_EQUALS((*completeInfo).iMode, (*getInfo).iMode);
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL, (*getInfo).iWcdmaCellInfo.iFrequencyInfo.iFddUL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL, (*getInfo).iWcdmaCellInfo.iFrequencyInfo.iFddDL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt, (*getInfo).iWcdmaCellInfo.iFrequencyInfo.iTddNt );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iPrimaryScrambilingCode, (*getInfo).iWcdmaCellInfo.iPrimaryScrambilingCode );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[1].iFrequencyInfo.iFddUL, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[1].iFrequencyInfo.iFddUL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddDL, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[2].iFrequencyInfo.iFddDL );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[3].iCarrierRSSI, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[3].iCarrierRSSI );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iCellMeasuredResult[1].iCID, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[4].iCellMeasuredResult[1].iCID );
+    ASSERT_EQUALS((*completeInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCellMeasuredResult[2].iTddInfo.iPrimaryCcpchRscp, (*getInfo).iWcdmaCellInfo.iNwkMeasureReport[5].iCellMeasuredResult[2].iTddInfo.iPrimaryCcpchRscp );
+
+	CleanupStack::PopAndDestroy(8, this); // getInfoPckg, getInfo, notifyInfoPckg, notifyInfo, completeInfo, data, customApi, this
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0026
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of RMobilePhone::NotifyCellInfoChange() RMobilePhone::GetCellInfo()
+@SYMTestPriority High
+@SYMTestActions Invokes NotifyCellInfoChange, GetCellInfo
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0026L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+	
+	RMobilePhone::TMobilePhoneCellInfoV9 returnCellInfo;
+	TMockLtsyData1<RMobilePhone::TMobilePhoneCellInfoV9> cellInfoCompData(returnCellInfo);
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId, KErrNone);
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId);
+
+	returnCellInfo.iMode = RMobilePhone::ECellModeGsm;
+	returnCellInfo.iCellId = 1;
+	returnCellInfo.iTimingAdvance = 123;
+	returnCellInfo.iStatus = RMobilePhone::ECellInfoStatusCurrent;
+	cellInfoCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId, KErrNone, data);
+	data.Close();
+	
+	//client side will be notified when a CellInfoChange has occurred, the first time called will result in
+	//a NotifyCellInfo Request to inform the LTSY we are interested in these notifications
+	TRequestStatus notifyCellInfoChangeReqStatus;
+	RMobilePhone::TMobilePhoneCellInfoV9 cellInfo;
+	RMobilePhone::TMobilePhoneCellInfoV9Pckg cellInfoPckg(cellInfo);
+	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
+		
+	TRequestStatus getCellInfoReqStatus;
+	RMobilePhone::TMobilePhoneCellInfoV9 cellInfo2;
+	RMobilePhone::TMobilePhoneCellInfoV9Pckg cellInfoPckg2(cellInfo2);
+	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg2);
+		
+	User::WaitForRequest(notifyCellInfoChangeReqStatus);
+	User::WaitForRequest(getCellInfoReqStatus);
+	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrNone);
+	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrNone);
+	
+	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
+	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
+	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
+	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
+	
+	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo2.iMode);
+	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo2.iCellId);
+	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo2.iTimingAdvance);
+	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo2.iStatus);
+	
+	AssertMockLtsyStatusL();
+		
+	//now a second get, the value is in the cach (rest cellInfo first)
+	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
+	cellInfo.iCellId = 0;
+	cellInfo.iTimingAdvance = 0;
+	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
+	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg);
+	User::WaitForRequest(getCellInfoReqStatus);
+	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrNone);
+	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
+	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
+	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
+	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
+	
+	AssertMockLtsyStatusL();
+	
+	// an unsolicited cellInfo change, with KErrNone
+	returnCellInfo.iMode = RMobilePhone::ECellModeWcdma;
+	returnCellInfo.iCellId = 2;
+	returnCellInfo.iTimingAdvance = 124;
+	returnCellInfo.iStatus = RMobilePhone::ECellInfoStatusNotCurrent;
+	cellInfoCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangeIndId, KErrNone, data);
+	data.Close();
+	
+	//reset the return data
+	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
+	cellInfo.iCellId = 0;
+	cellInfo.iTimingAdvance = 0;
+	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
+	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
+	User::WaitForRequest(notifyCellInfoChangeReqStatus);
+	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrNone);
+	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
+	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
+	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
+	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
+		
+	AssertMockLtsyStatusL();
+	
+	//an unsolicited cellInfo change, with KErrGeneral, the cache is now marked as dirty
+	cellInfoCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangeIndId, KErrGeneral, data);
+	data.Close();
+
+	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
+	User::WaitForRequest(notifyCellInfoChangeReqStatus);
+	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrGeneral);
+	
+	AssertMockLtsyStatusL();
+	
+	//a client side GetCellInfo call (post the cache being marked dirty), KErrGeneral returned
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId);
+	returnCellInfo.iMode = RMobilePhone::ECellModeGsm;
+	returnCellInfo.iCellId = 1;
+	returnCellInfo.iTimingAdvance = 123;
+	returnCellInfo.iStatus = RMobilePhone::ECellInfoStatusCurrent;
+	cellInfoCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetPhoneCellInfo::KLtsyDispatchPhoneGetPhoneCellInfoApiId, KErrGeneral, data);
+	data.Close();
+	
+	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg);
+	User::WaitForRequest(getCellInfoReqStatus);
+	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrGeneral);
+	
+	AssertMockLtsyStatusL(); 
+	
+	
+	//an unsolicited cellInfo change, with KErrNone, the cache is now marked as clean
+	cellInfoCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyCellInfoChangeIndId, KErrNone, data);
+	data.Close();
+
+	//reset the return data
+	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
+	cellInfo.iCellId = 0;
+	cellInfo.iTimingAdvance = 0;
+	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
+	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
+	User::WaitForRequest(notifyCellInfoChangeReqStatus);
+	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrNone);
+	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
+	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
+	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
+	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
+	
+	AssertMockLtsyStatusL();
+
+	//finally a cached get.
+	//reset the return data
+	cellInfo.iMode = RMobilePhone::ECellModeUnknown;
+	cellInfo.iCellId = 0;
+	cellInfo.iTimingAdvance = 0;
+	cellInfo.iStatus = RMobilePhone::ECellInfoStatusUnknown;
+	iPhone.GetCellInfo(getCellInfoReqStatus,cellInfoPckg);
+	User::WaitForRequest(getCellInfoReqStatus);
+	ASSERT_EQUALS(getCellInfoReqStatus.Int(),KErrNone);
+	ASSERT_EQUALS(returnCellInfo.iMode, cellInfo.iMode);
+	ASSERT_EQUALS(returnCellInfo.iCellId, cellInfo.iCellId);
+	ASSERT_EQUALS(returnCellInfo.iTimingAdvance, cellInfo.iTimingAdvance);
+	ASSERT_EQUALS(returnCellInfo.iStatus, cellInfo.iStatus);
+
+	AssertMockLtsyStatusL();
+
+	
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0027
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of RMobilePhone::NotifyCellInfoChange()
+@SYMTestPriority High
+@SYMTestActions Invokes NotifyCellInfoChange,with a complete error case
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0027L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+	
+	//test the complete of NotifyCellInfoChange with an error, this is in a differnet test case
+	//as the IPC is only fired the first time a NotifyCellInfoChange is called as the 
+	//Cache Ability is set ECacheUnknown
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneRegisterCellInfoChangeNotification::KLtsyDispatchPhoneRegisterCellInfoChangeNotificationApiId, KErrGeneral);
+
+	TRequestStatus notifyCellInfoChangeReqStatus;
+	RMobilePhone::TMobilePhoneCellInfoV9 cellInfo;
+	RMobilePhone::TMobilePhoneCellInfoV9Pckg cellInfoPckg(cellInfo);
+	iPhone.NotifyCellInfoChange(notifyCellInfoChangeReqStatus,cellInfoPckg);
+	User::WaitForRequest(notifyCellInfoChangeReqStatus);
+	ASSERT_EQUALS(notifyCellInfoChangeReqStatus.Int(),KErrGeneral);
+	
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0028
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of RMmCustomAPI::GetUSIMServiceSupport()
+@SYMTestPriority High
+@SYMTestActions Invokes GetUSIMServiceSupport, in KErrNone and KErrGeneral complete cases
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0028L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TRequestStatus reqStatus;
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+	
+	//test a Get Usim Service Support with KErrNone completion
+	
+	TInt applicationNumber = 101;
+	TBool supported = ETrue;
+	
+	TMockLtsyData1<TInt> getUsimServiceSupportExpData(applicationNumber);
+	getUsimServiceSupportExpData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, data);
+	data.Close();
+	
+	TMockLtsyData2<TInt, TBool> getUsimServiceSupportCompData(applicationNumber, supported);
+	getUsimServiceSupportCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, KErrNone, data);
+	data.Close();
+	
+	RMmCustomAPI::TAppSupport usimSupport;
+	usimSupport.iAppNum = applicationNumber; //in
+	usimSupport.iSupported = EFalse; //out
+	customApi.GetUSIMServiceSupport(reqStatus, usimSupport);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(),KErrNone);
+	ASSERT_EQUALS(usimSupport.iAppNum,applicationNumber);
+	ASSERT_EQUALS(usimSupport.iSupported,supported);
+		
+	AssertMockLtsyStatusL();
+
+	//test a Get Usim Service Support with KErrGeneral completion
+
+	applicationNumber = 102;
+	supported = EFalse;
+	
+	getUsimServiceSupportExpData.SerialiseL(data);
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, data);
+	data.Close();
+	
+	getUsimServiceSupportCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetUsimServiceSupport::KLtsyDispatchPhoneGetUsimServiceSupportApiId, KErrGeneral, data);
+	data.Close();
+	
+	
+	usimSupport.iAppNum = applicationNumber; //in
+	usimSupport.iSupported = ETrue; //out
+	customApi.GetUSIMServiceSupport(reqStatus, usimSupport);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(),KErrGeneral);
+	ASSERT_EQUALS(usimSupport.iAppNum,applicationNumber);
+	ASSERT_EQUALS(usimSupport.iSupported, static_cast<TBool>(ETrue)); //i.e. not set to EFalse from the complete
+	
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(&customApi);
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0029
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of RMobilePhone::GetCurrentActiveUSimApplication()
+@SYMTestPriority High
+@SYMTestActions Invokes GetCurrentActiveUSimApplication, in KErrNone and KErrGeneral complete cases
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0029L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TRequestStatus reqStatus;
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId);
+	
+	RMobilePhone::TAID comopAid(_L8("AID_DATA"));
+	
+	TDesC8* aidPtr = &comopAid;
+	TMockLtsyData1<TDesC8*> getCurrentActiveUsimAppCompData(aidPtr);
+	getCurrentActiveUsimAppCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId, KErrNone, data);
+	data.Close();
+	
+	RMobilePhone::TAID aid;
+	iPhone.GetCurrentActiveUSimApplication(reqStatus,aid);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrNone);
+	ASSERT_EQUALS(comopAid, aid);
+	AssertMockLtsyStatusL();
+
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId);
+	
+	getCurrentActiveUsimAppCompData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetCurrentActiveUsimApplication::KLtsyDispatchPhoneGetCurrentActiveUsimApplicationApiId, KErrGeneral, data);
+	data.Close();
+
+	aid.Zero();
+	iPhone.GetCurrentActiveUSimApplication(reqStatus,aid);
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(reqStatus.Int(), KErrGeneral);
+	ASSERT_EQUALS(comopAid, aid); //aid still copied
+	AssertMockLtsyStatusL();
+		
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0030
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of RMobilePhone::TerminateAllCalls()
+@SYMTestPriority High
+@SYMTestActions Invokes RMobilePhone::TerminateAllCalls
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0030L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TRequestStatus requestStatus;
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+
+	
+	TInt callId = 1;
+	RMobilePhone::TMobileService mobileService = RMobilePhone::EVoiceService;
+	DriverDialCallL(callId, mobileService);
+	
+	TInt callIdHangUp = 0; //callId is provided if a call is in connecting state; else 0
+    TMockLtsyData1<TInt> mockData(callIdHangUp); 
+	mockData.SerialiseL(data);
+	
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneTerminateAllCalls::KLtsyDispatchPhoneTerminateAllCallsApiId, data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneTerminateAllCalls::KLtsyDispatchPhoneTerminateAllCallsApiId, KErrNone);
+	data.Close();
+
+	TInt hangUpCause = KErrGsmCCNormalCallClearing; // Hang up cause for normal hang up
+	DriverHangUpCallL(callId, hangUpCause, ETrue);
+	
+
+	// Client Side Test
+
+	RMobileLine mobileLine;
+	CleanupClosePushL(mobileLine);
+	RMobileCall mobileCall;
+	CleanupClosePushL(mobileCall);
+	ClientDialCallL(mobileLine, mobileCall, mobileService);
+
+
+	TRequestStatus reqStatusTerminated;
+	iMockLTSY.NotifyTerminated(reqStatusTerminated); 
+
+	iPhone.TerminateAllCalls(requestStatus);
+	User::WaitForRequest(requestStatus);
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	ClientHangUpCallL(mobileCall);
+	
+	User::WaitForRequest(reqStatusTerminated);
+	ASSERT_EQUALS(KErrNone, reqStatusTerminated.Int());
+	
+	AssertMockLtsyStatusL();
+	
+	mobileCall.Close();
+	mobileLine.Close();
+	
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(&mobileCall);
+	CleanupStack::PopAndDestroy(&mobileLine);
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0031
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test correct function of RMmCustomAPI::GetSystemNetworkBand() and RMmCustomAPI::SetSystemNetworkBand()
+@SYMTestPriority High
+@SYMTestActions Invokes RMmCustomAPI::SetSystemNetworkBand(), RMmCustomAPI::GetSystemNetworkBand()
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0031L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+
+	TRequestStatus requestStatus;
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+	
+	OpenPhoneL();
+	
+	RMmCustomAPI customApi;
+	OpenCustomApiLC(customApi);
+
+	RMmCustomAPI::TBandSelection band=RMmCustomAPI::ENetworkBandAny;
+	RMmCustomAPI::TNetworkModeCaps mode=RMmCustomAPI::KCapsNetworkModeUmts;
+	
+	RMmCustomAPI::TBandSelection bandToGet=RMmCustomAPI::ENetworkBandUmts850;
+	RMmCustomAPI::TNetworkModeCaps modeToGet=RMmCustomAPI::KCapsNetworkModeDual;
+	
+	RMmCustomAPI::TBandSelection bandToSet=RMmCustomAPI::ENetworkBandUmts2100;
+	RMmCustomAPI::TNetworkModeCaps modeToSet=RMmCustomAPI::KCapsNetworkModeGsm;
+	
+	TRequestStatus req=0;
+
+	
+	//1. Test GetSystemNetworkBand
+
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneGetSystemNetworkBand::KLtsyDispatchPhoneGetSystemNetworkBandApiId);
+	
+	TMockLtsyData2<RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> getData(bandToGet, modeToGet);
+	getData.SerialiseL(data);
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneGetSystemNetworkBand::KLtsyDispatchPhoneGetSystemNetworkBandApiId, KErrNone, data);
+	data.Close();
+	
+	
+	customApi.GetSystemNetworkBand( req, band, mode);
+    User::WaitForRequest(req);
+    
+    ASSERT_EQUALS(KErrNone, req.Int());
+    ASSERT_EQUALS(bandToGet, band);
+    ASSERT_EQUALS(modeToGet, mode);
+    
+    AssertMockLtsyStatusL();
+    
+    
+    //2. Test SetSystemNetworkBand
+
+	TMockLtsyData2<RMmCustomAPI::TBandSelection, RMmCustomAPI::TNetworkModeCaps> setData(bandToSet, modeToSet);
+	setData.SerialiseL(data);
+    
+	iMockLTSY.ExpectL(MLtsyDispatchPhoneSetSystemNetworkBand::KLtsyDispatchPhoneSetSystemNetworkBandApiId, data);
+
+	iMockLTSY.CompleteL(MLtsyDispatchPhoneSetSystemNetworkBand::KLtsyDispatchPhoneSetSystemNetworkBandApiId, KErrNone);
+	data.Close();
+    
+    
+    band = bandToSet;
+    mode = modeToSet;
+    customApi.SetSystemNetworkBand(req, band, mode);
+    User::WaitForRequest(req);
+    ASSERT_EQUALS(KErrNone, req.Int());
+	
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(&customApi);
+	CleanupStack::PopAndDestroy(&data);
+	CleanupStack::PopAndDestroy(this);
+	}
+
+/**
+@SYMTestCaseID BA-CTSYD-DIS-PHONE-UN0032
+@SYMComponent telephony_ctsy
+@SYMTestCaseDesc Test RPhone::NotifyDtmfEvent
+@SYMTestPriority High
+@SYMTestActions Invokes RPhone::NotifyDtmfEvent
+@SYMTestExpectedResults Pass
+@SYMTestType UT
+ */
+void CCTsyPhoneFU::TestUnit0032L()
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+	
+	RBuf8 data;
+	CleanupClosePushL(data);
+
+    TRequestStatus requestStatus;
+	
+	RMobilePhone::TMobilePhoneDTMFEvent event(RMobilePhone::EStopDtmfTone);	
+	RMobilePhone::TMobilePhoneDTMFEvent startEvent(RMobilePhone::EStartDtmfTone);	
+	TRequestStatus reqStatus;
+	
+    TMockLtsyData1< RMobilePhone::TMobilePhoneDTMFEvent > toneEvent( startEvent );
+    toneEvent.SerialiseL(data);
+
+	iPhone.NotifyDTMFEvent(reqStatus, event);
+	iMockLTSY.CompleteL(KMockLtsyDispatchPhoneNotifyDtmfEventIndId, KErrNone, data);
+	
+	User::WaitForRequest(reqStatus);
+	ASSERT_EQUALS(KErrNone, reqStatus.Int());  
+	ASSERT_EQUALS(RMobilePhone::EStartDtmfTone, event);
+	
+	
+	CleanupStack::PopAndDestroy(2, this); // call, line, data, this	
+	}