telephonyserverplugins/common_tsy/test/component/src/cctsysmsstorefu.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserverplugins/common_tsy/test/component/src/cctsysmsstorefu.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserverplugins/common_tsy/test/component/src/cctsysmsstorefu.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,3649 +1,3649 @@
-// Copyright (c) 2007-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:
-// The TEFUnit test suite for SmsStore in the Common TSY.
-// 
-//
-
-/**
- @file 
-*/
-
-#include "cctsysmsstorefu.h"
-#include <etel.h>
-#include <etelmm.h>
-#include <et_clsvr.h>
-#include <ctsy/mmtsy_names.h>
-#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
-#include "tmockltsydata.h"
-#include <ctsy/serviceapi/gsmerror.h>
-#include "cctsyactiveretriever.h"
-#include <mmretrieve.h>
-#include <ctsy/serviceapi/cmmsmsutility.h>
-
-CTestSuite* CCTsySmsStoreFU::CreateSuiteL(const TDesC& aName)
-	{
-	SUB_SUITE;
-
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestNotifyStoreEvent0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestNotifyStoreEvent0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestNotifyStoreEvent0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0003L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0003L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0003L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0001L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0001bL);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0002L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0004L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0005L);
-	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStartBatch0001L);
-
-	END_SUITE;
-	}
-
-
-//
-// Actual test cases
-//
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSNSE-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::NotifyStoreEvent
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::NotifyStoreEvent
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestNotifyStoreEvent0001L()
-	{
-	AuxNotifyStoreEvent1L(KETelIccSmsStore);
-
- 	//-------------------------------------------------------------------------
-	// for coverage increasing
- 	//-------------------------------------------------------------------------
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, KETelMeSmsStore);
-	ASSERT_EQUALS(KErrNotSupported, res);
-
-	CleanupStack::PopAndDestroy(2, this); // this, messaging
-	
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSNSE-0002
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::NotifyStoreEvent
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileSmsStore::NotifyStoreEvent
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestNotifyStoreEvent0002L()
-	{
-	AuxNotifyStoreEvent2L(KETelIccSmsStore);	
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSNSE-0004
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::NotifyStoreEvent
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileSmsStore::NotifyStoreEvent
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestNotifyStoreEvent0004L()
-	{
-	AuxNotifyStoreEvent4L(KETelIccSmsStore);	
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Read
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Read
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestRead0001L()
-	{
-	AuxRead1L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0002
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::Read
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileSmsStore::Read
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestRead0002L()
-	{
-	AuxRead2L(KETelIccSmsStore);	
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0003
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Read with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Read with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestRead0003L()
-	{
-	AuxRead3L(KETelIccSmsStore);	
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0004
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::Read
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileSmsStore::Read
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestRead0004L()
-	{
-	AuxRead4L(KETelIccSmsStore);	
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0005
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Read with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Read and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestRead0005L()
-	{
-	AuxRead5L(KETelIccSmsStore);	
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDelete0001L()
-	{
-	AuxDelete1L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0002
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileSmsStore::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDelete0002L()
-	{
-	AuxDelete2L(KETelIccSmsStore);
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0004
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::Delete
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileSmsStore::Delete
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDelete0004L()
-	{
-	AuxDelete4L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0005
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Delete with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Delete and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDelete0005L()
-	{
-	AuxDelete5L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::GetInfo
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::GetInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestGetInfo0001L()
-	{
-	AuxGetInfo1L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0002
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::GetInfo
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileSmsStore::GetInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestGetInfo0002L()
-	{
-	AuxGetInfo2L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0003
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::GetInfo with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::GetInfo with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestGetInfo0003L()
-	{
-	AuxGetInfo3L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0004
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::GetInfo
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileSmsStore::GetInfo
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestGetInfo0004L()
-	{
-	AuxGetInfo4L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0005
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::GetInfo with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::GetInfo and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestGetInfo0005L()
-	{
-	AuxGetInfo5L(KETelIccSmsStore);
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::DeleteAll
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::DeleteAll
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDeleteAll0001L()
-	{
-	AuxDeleteAll1L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0002
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::DeleteAll
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileSmsStore::DeleteAll
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDeleteAll0002L()
-	{
-	AuxDeleteAll2L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0004
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::DeleteAll
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileSmsStore::DeleteAll
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDeleteAll0004L()
-	{
-	AuxDeleteAll4L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0005
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::DeleteAll with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::DeleteAll and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestDeleteAll0005L()
-	{
-	AuxDeleteAll5L(KETelIccSmsStore);
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Write
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Write
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestWrite0001L() 
-	{
-	AuxWrite1L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0002
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::Write
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of RMobileSmsStore::Write
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestWrite0002L()
-	{
-	AuxWrite2L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0003
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Write with bad parameter data
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Write with bad parameter data
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestWrite0003L()
-	{
-	
-	/*
-	Test passing wrong descriptor size to parameter fails. 
-	Function execution invokes KERN:4 panic.
-	See line 691 [TInt CMmSmsStorageTsy::CompleteWriteSms()] in file CMmSmsStorageTsy.cpp.
-	*/
-	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 420601);
-	
-	AuxWrite3L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0004
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::Write
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to RMobileSmsStore::Write
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestWrite0004L()
-	{
-	AuxWrite4L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0005
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Write with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes RMobileSmsStore::Write and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestWrite0005L()
-	{
-	AuxWrite5L(KETelIccSmsStore);
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::Start
-@SYMTestPriority High
-@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::Start
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestStart0001L()
-	{
-	AuxStart1L(KETelIccSmsStore);
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0001b
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::Start
-@SYMTestPriority High
-@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::Start
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestStart0001bL()
-	{
-	AuxStart1bL(KETelIccSmsStore);
-	}
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0002
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for cancelling of CRetrieveMobilePhoneSmsList::Start
-@SYMTestPriority High
-@SYMTestActions Invokes cancelling of CRetrieveMobilePhoneSmsList::Start
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestStart0002L()
-	{
-	AuxStart2L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0004
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for multiple client requests to CRetrieveMobilePhoneSmsList::Start
-@SYMTestPriority High
-@SYMTestActions Invokes multiple client requests to CRetrieveMobilePhoneSmsList::Start
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestStart0004L()
-	{
-	AuxStart4L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0005
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::Start with timeout
-@SYMTestPriority High
-@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::Start and tests for timeout
-@SYMTestExpectedResults Pass
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestStart0005L()
-	{
-	AuxStart5L(KETelIccSmsStore);
-	}
-
-
-/**
-@SYMTestCaseID BA-CTSY-PBSMS-SMSSSB-0001
-@SYMComponent  telephony_ctsy
-@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::StartBatch 
-@SYMTestPriority High
-@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::StartBatch 
-@SYMTestExpectedResults KErrNotSupported is expected.
-@SYMTestType CT
-*/
-void CCTsySmsStoreFU::TestStartBatch0001L()
-	{
-	AuxStartBatch1L(KETelIccSmsStore);
-	}
-
-
-void CCTsySmsStoreFU::AuxRead1L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
-	
-	TInt index = -1;
-	TMockLtsyData1<TInt> mockIndex(index);
-
-	TSmsMsg smsMsg;
-	smsMsg.iSmsMsg = _L8("Hello, World!"); 
-	smsMsg.iServiceCentre = _L("ServiceSenter1"); 
-	smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-	smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-	smsMsg.iMessageStatus = KSimSmsMtRead; //0x01, RMobileSmsStore::EStoredMessageRead
-	smsMsg.iLocation      = 200;
-	smsMsg.iDeleteAfterClientAck = EFalse;
-	smsMsg.iSmsClass2            = ETrue;
-
-	TMockLtsyData1<TSmsMsg> mockMsg(smsMsg);
-
-	mockIndex.SerialiseL(expData);
-	mockMsg.SerialiseL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData, KErrNotSupported);
-
-	store.Read(requestStatus, pckgEntryV1);
-
-	User::WaitForRequest(requestStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
-
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->CTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrGeneral, completeData);
-
-    store.Read(requestStatus, pckgEntryV1);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
-
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// RMobileENStore::Read when result is not cached.
- 	//-------------------------------------------------------------------------
-		
-	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
-
-	store.Read(requestStatus, pckgEntryV1);
-
-	User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-
-	ASSERT_EQUALS(0, smsMsg.iSmsMsg.Compare(entryV1.iMsgData));	
-	ASSERT_EQUALS(0, smsMsg.iServiceCentre.Compare(entryV1.iServiceCentre.iTelNumber));	
-	ASSERT_EQUALS(smsMsg.iMobileScTON, entryV1.iServiceCentre.iTypeOfNumber);	
-	ASSERT_EQUALS(smsMsg.iMobileScNPI, entryV1.iServiceCentre.iNumberPlan);	
-	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageRead, entryV1.iMsgStatus);	
-
-	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of RMobileENStore::Read
-	// from LTSY.
-	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-	//-------------------------------------------------------------------------
-	// for coverage increasing
- 	//-------------------------------------------------------------------------
-	
-	RArray< TUint> messageStatusArray;
-	CleanupClosePushL(messageStatusArray);
-	
-	messageStatusArray.AppendL(KSimSmsMoNotSent);
-	messageStatusArray.AppendL(KSimSmsStatusReportReqNotReceived);
-	messageStatusArray.AppendL(KSimSmsMoSent);
-	messageStatusArray.AppendL(KSimSmsMtNotRead);
-	messageStatusArray.AppendL(KSimSmsStatusReportReqReceivedNotStored);
-	messageStatusArray.AppendL(KSimSmsStatusReportReqReceivedStored);
-	
-	for (TInt i = 0; i < messageStatusArray.Count(); i++)
-		{
-		smsMsg.iMessageStatus = messageStatusArray[i];
-		TMockLtsyData1<TSmsMsg> mockMsgb(smsMsg);
-		
-		completeData.Close();
-		mockMsgb.SerialiseL(completeData);
-		
-		iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
-		iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
-
-	    store.Read(requestStatus, pckgEntryV1);
-	    
-	    User::WaitForRequest(requestStatus);        
-	    AssertMockLtsyStatusL();
-		ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-
-		ASSERT_EQUALS(0, smsMsg.iSmsMsg.Compare(entryV1.iMsgData));	
-		ASSERT_EQUALS(0, smsMsg.iServiceCentre.Compare(entryV1.iServiceCentre.iTelNumber));	
-		ASSERT_EQUALS(smsMsg.iMobileScTON  , entryV1.iServiceCentre.iTypeOfNumber);	
-		ASSERT_EQUALS(smsMsg.iMobileScNPI  , entryV1.iServiceCentre.iNumberPlan);	
-		
-	    switch( smsMsg.iMessageStatus )
-	        {
-	        case KSimSmsMoNotSent: //0x07
-	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageUnsent, entryV1.iMsgStatus);	
-	            break;
-	        case KSimSmsStatusReportReqNotReceived: //0x0D
-	        case KSimSmsMoSent: //0x05
-	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageSent, entryV1.iMsgStatus);	
-	            break;
-	        case KSimSmsMtRead: //0x01
-	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageRead, entryV1.iMsgStatus);	
-	            break;
-	        case KSimSmsMtNotRead: //0x03
-	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageUnread, entryV1.iMsgStatus);	
-	            break;
-		    case KSimSmsStatusReportReqReceivedNotStored: //0x15
-			case KSimSmsStatusReportReqReceivedStored: //0x1D
-	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageDelivered, entryV1.iMsgStatus);	
-	            break;
-	        default:
-	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageUnknownStatus, entryV1.iMsgStatus);	
-	            break;
-	        }	
-		}
-	
-
-	CleanupStack::PopAndDestroy(6, this); // expData, completeData, this, messaging, store
-	                                      // messageStatusArray
-	
-	}
-
-void CCTsySmsStoreFU::AuxRead2L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
-	
-	TInt index = -1;
-	TMockLtsyData1<TInt> mockIndex(index);
-
-	TSmsMsg smsMsg;
-    smsMsg.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg.iServiceCentre = _L("ServiceSenter1"); 
-    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg.iMessageStatus = KSimSmsMtRead; //0x01, RMobileSmsStore::EStoredMessageRead
-    smsMsg.iLocation      = 200;
-    smsMsg.iDeleteAfterClientAck = EFalse;
-    smsMsg.iSmsClass2            = ETrue;
-
-	TMockLtsyData1<TSmsMsg> mockMsg(smsMsg);
-
-	mockIndex.SerialiseL(expData);
-	mockMsg.SerialiseL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// Test cancelling of RMobileSmsStore::Read
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
- 	
-	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
-	
-    store.Read(requestStatus, pckgEntryV1);
-    store.CancelAsyncRequest(EMobilePhoneStoreRead);
-		
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
-
-	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this, messaging, store
-		
-	}
-
-void CCTsySmsStoreFU::AuxRead3L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	
-	TInt index = 56;
-	TMockLtsyData1<TInt> mockIndex(index);
-
-	TSmsMsg smsMsg;
-    smsMsg.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg.iServiceCentre = _L("ServiceSenter1"); 
-    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg.iMessageStatus = KSimSmsMtRead; //0x01, RMobileSmsStore::EStoredMessageRead
-    smsMsg.iLocation      = 200;
-    smsMsg.iDeleteAfterClientAck = EFalse;
-    smsMsg.iSmsClass2            = ETrue;
-
-	TMockLtsyData1<TSmsMsg> mockMsg(smsMsg);
-
-	mockIndex.SerialiseL(expData);
-	mockMsg.SerialiseL(completeData);
-
-	//-------------------------------------------------------------------------
-	// Test B: Test passing wrong descriptor size to parameter in
-	// RMobileSmsStore::Read
- 	//-------------------------------------------------------------------------
-
-	TBuf8<1> badParam;
-    store.Read(requestStatus, badParam);
-    
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrArgument, requestStatus.Int());	
-	
-	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this, messaging, store
-		
-	}
-	
-void CCTsySmsStoreFU::AuxRead4L(const TDesC& aName)
-	{
-					
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2; 
-	ret = phone2.Open(telServer2, KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-    // open the message store1
-    RMobileSmsMessaging messaging1;
-    TInt res = messaging1.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging1);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store1;
-    res = store1.Open(messaging1, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store1);
-
-    // open the message store2
-    RMobileSmsMessaging messaging2;
-    res = messaging2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging2);
-
-    RMobileSmsStore store2;
-    res = store2.Open(messaging2, KETelIccSmsStore);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store2);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// param for first function
-	
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV11;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV11(entryV11);
-	
-	TInt index = -1;
-	TMockLtsyData1<TInt> mockIndex(index);
-
-	TSmsMsg smsMsg1;
-    smsMsg1.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg1.iServiceCentre = _L("ServiceSenter1"); 
-    smsMsg1.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg1.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg1.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
-    smsMsg1.iLocation      = 200;
-    smsMsg1.iDeleteAfterClientAck = EFalse;
-    smsMsg1.iSmsClass2            = ETrue;
-
-	TMockLtsyData1<TSmsMsg> mockMsg1(smsMsg1);
-
- 	//-------------------------------------------------------------------------
-	// param for second function
-	
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV12;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV12(entryV12);
-	
-	TSmsMsg smsMsg2;
-    smsMsg2.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg2.iServiceCentre = _L("ServiceSenter1"); 
-    smsMsg2.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg2.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg2.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
-    smsMsg2.iLocation      = 200;
-    smsMsg2.iDeleteAfterClientAck = EFalse;
-    smsMsg2.iSmsClass2            = ETrue;
-
-	TMockLtsyData1<TSmsMsg> mockMsg2(smsMsg2);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RMobileSmsStore::Read
- 	//-------------------------------------------------------------------------
-
-	mockIndex.SerialiseL(expData);
-	mockMsg1.SerialiseL(completeData);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
-
-    store1.Read(requestStatus1, pckgEntryV11);
-
-	completeData.Close();
-	mockMsg2.SerialiseL(completeData);
-
-	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
-
-    store2.Read(requestStatus2, pckgEntryV12);
-    
-    User::WaitForRequest(requestStatus1);        
-	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
-
-    User::WaitForRequest(requestStatus2);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
-
-	ASSERT_EQUALS(0, smsMsg1.iSmsMsg.Compare(entryV11.iMsgData));	
-	ASSERT_EQUALS(0, smsMsg1.iServiceCentre.Compare(entryV11.iServiceCentre.iTelNumber));	
-	ASSERT_EQUALS(smsMsg1.iMobileScTON, entryV11.iServiceCentre.iTypeOfNumber);	
-	ASSERT_EQUALS(smsMsg1.iMobileScNPI, entryV11.iServiceCentre.iNumberPlan);	
-	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageRead, entryV11.iMsgStatus);	
-	
-	CleanupStack::PopAndDestroy(9, this); // phone2, telServer2, expData, this, completeData
-	                                      // store1, messaging1, store2, messaging2
-
-	}
-	
-void CCTsySmsStoreFU::AuxRead5L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	//-------------------------------------------------------------------------
-
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
-	
-	TInt index = -1;
-	TMockLtsyData1<TInt> mockIndex(index);
-
-	mockIndex.SerialiseL(expData);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test timeout of RMobileSmsStore::Read
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
-
-	store.Read(requestStatus, pckgEntryV1);
-	
-	User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
-
-	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
-
-	}	
-	
-void CCTsySmsStoreFU::AuxWrite1L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-
-	TInt index = -1;
-
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
-	
-	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
-	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
-	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
-	entryV1.iMsgData = _L8("Hello, World!");
-	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
-	entryV1.iIndex = index;
-	
-	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
-		expMockData2(entryV1, entryV1.iIndex);
-
-    TUint8 location = 100;
-	TBool  receivedClass2ToBeResent = ETrue;
-
-	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
-
-	expMockData2.SerialiseL(expData);
-	completeMockData2.SerialiseL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData, KErrNotSupported);
-
-	store.Write(requestStatus, pckgEntryV1);
-
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
-
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->CTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrGeneral, completeData);
-	
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	store.Write(requestStatus, pckgEntryV1);
-
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
-
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// RMobileSmsStore::Write when result is not cached.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	store.Write(requestStatus, pckgEntryV1);
-
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-	ASSERT_EQUALS(static_cast<TUint8>(entryV1.iIndex), location);
-
- 	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of RMobileSmsStore::Write
-	// from LTSY.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
-	                                      // store, messaging
-	
-	}
-
-void CCTsySmsStoreFU::AuxWrite2L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-
-	TInt index = -1;
-
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
-	
-	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
-	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
-	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
-	entryV1.iMsgData = _L8("Hello, World!");
-	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
-	entryV1.iIndex = index;
-	
-	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
-		expMockData2(entryV1, entryV1.iIndex);
-
-    TUint8 location = 100;
-	TBool  receivedClass2ToBeResent = ETrue;
-
-	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
-
-	expMockData2.SerialiseL(expData);
-	completeMockData2.SerialiseL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// Test cancelling of RMobileSmsStore::Write
- 	//-------------------------------------------------------------------------
- 	
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
- 	
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData, 10);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	store.Write(requestStatus, pckgEntryV1);
-
-    store.CancelAsyncRequest(EMobilePhoneStoreWrite);
-
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-	User::WaitForRequest(requestStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
-	                                      // store, messaging
-	}
-	
-void CCTsySmsStoreFU::AuxWrite3L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-	RMobileSmsStore store;
-	res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
-	//-------------------------------------------------------------------------
-
-	RMobileSmsStore::TMobileCdmaSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileCdmaSmsEntryV1> pckgEntryV1(entryV1);
-	
-	entryV1.iTeleservice = 0;
-	entryV1.iServiceCategory = 0;
-	entryV1.iRemoteParty.iTypeOfNumber = RMobilePhone::EUnknownNumber;;
-	entryV1.iRemoteParty.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
-	entryV1.iRemoteParty.iTelNumber = _L("123456");
-	entryV1.iMsgData = _L8("Hello, World!");
-	
-	TMockLtsyData2<RMobileSmsStore::TMobileCdmaSmsEntryV1, TInt> 
-		expMockData2(entryV1, entryV1.iIndex);
-
-	TUint8 location = 100;
-	TBool  receivedClass2ToBeResent = ETrue;
-
-	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
-
-	expMockData2.SerialiseL(expData);
-	completeMockData2.SerialiseL(completeData);
-	
-	//-------------------------------------------------------------------------
-	// Test A: Test passing wrong version of parameters to
-	// RMobileSmsStore::Write
-	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	store.Write(requestStatus, pckgEntryV1);
-
-	User::WaitForRequest(requestStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-
-	//-------------------------------------------------------------------------
-	// Test B: Test passing wrong descriptor size to parameter in
-	// RMobileSmsStore::Write
-	//-------------------------------------------------------------------------
-    TBuf8<1> badSize;
-	store.Write(requestStatus, badSize);
-
-	User::WaitForRequest(requestStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrArgument, requestStatus.Int());	
-
-	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
-	                                      // store, messaging
-
-	}
-
-void CCTsySmsStoreFU::AuxWrite4L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2; 
-	ret = phone2.Open(telServer2, KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-    // open the message store1
-    RMobileSmsMessaging messaging1;
-    TInt res = messaging1.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging1);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store1;
-    res = store1.Open(messaging1, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store1);
-
-    // open the message store2
-    RMobileSmsMessaging messaging2;
-    res = messaging2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging2);
-
-    RMobileSmsStore store2;
-    res = store2.Open(messaging2, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store2);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// parameters for first function
-
-	TInt index = -1;
-
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV11;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV11(entryV11);
-	
-	entryV11.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
-	entryV11.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
-	entryV11.iServiceCentre.iTelNumber    = _L("TelNumber1");
-	entryV11.iMsgData = _L8("Hello, World!");
-	entryV11.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
-	entryV11.iIndex = index;
-	
-	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
-		expMockData21(entryV11, entryV11.iIndex);
-
-    TUint8 location = 100;
-	TBool  receivedClass2ToBeResent = ETrue;
-
-	TMockLtsyData2<TUint8, TBool> completeMockData21(location, receivedClass2ToBeResent);
-
- 	//-------------------------------------------------------------------------
-	// parameters for second function
-
-	index = 1;
-
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV12;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV12(entryV12);
-	
-	entryV12.iServiceCentre.iNumberPlan   = RMobilePhone::EServiceCentreSpecificPlan1;
-	entryV12.iServiceCentre.iTypeOfNumber = RMobilePhone::ESubscriberNumber;
-	entryV12.iServiceCentre.iTelNumber    = _L("TelNumber2");
-	entryV12.iMsgData = _L8("Good-bye, World!");
-	entryV12.iMsgStatus = RMobileSmsStore::EStoredMessageDelivered;
-	entryV12.iIndex = index;
-	
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RMobileSmsStore::Write
- 	//-------------------------------------------------------------------------
-
-	expMockData21.SerialiseL(expData);
-	completeMockData21.SerialiseL(completeData);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData, 10);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	store1.Write(requestStatus1, pckgEntryV11);
-
-	store2.Write(requestStatus2, pckgEntryV12);
-
-    User::WaitForRequest(requestStatus1);
-	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
-
-    User::WaitForRequest(requestStatus2);
-	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
-
-    AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(9, this); // phone2, telServer2, expData, this, completeData
-	                                      // store1, messaging1, store2, messaging2
-	}	
-	
-void CCTsySmsStoreFU::AuxWrite5L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-
-	TInt index = -1;
-
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
-	
-	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
-	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
-	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
-	entryV1.iMsgData = _L8("Hello, World!");
-	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
-	entryV1.iIndex = index;
-	
-	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
-		expMockData2(entryV1, entryV1.iIndex);
-
-	expMockData2.SerialiseL(expData);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test timeout of RMobileSmsStore::Write
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-
-	store.Write(requestStatus, pckgEntryV1);
-
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
-
-	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
-	                                      // store, messaging
-
-	}
-
-void CCTsySmsStoreFU::AuxDelete1L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	//-------------------------------------------------------------------------
-
-	TInt index = 1;
-
-	TMockLtsyData1<TInt> expMockData1(index);
-	expMockData1.SerialiseL(expData);
-
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData, KErrNotSupported);
-
-    store.Delete(requestStatus, index);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
-
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->CTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrGeneral);
-
-    store.Delete(requestStatus, index);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
-
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// RMobileSmsStore::Delete when result is not cached.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
-	
-	store.Delete(requestStatus, index);
-
-	User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-	
- 	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of RMobileSmsStore::Delete
-	// from LTSY.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-	
-	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
-	}
-
-void CCTsySmsStoreFU::AuxDelete2L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	//-------------------------------------------------------------------------
-
-	TInt index = 1;
-
-	TMockLtsyData1<TInt> expMockData1(index);
-	expMockData1.SerialiseL(expData);
-
-	//-------------------------------------------------------------------------
-	// Test cancelling of RMobileSmsStore::Delete
-	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
-	
-	store.Delete(requestStatus, index);
-	store.CancelAsyncRequest(EMobilePhoneStoreDelete);
-		
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-	User::WaitForRequest(requestStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
-
-	}
-
-void CCTsySmsStoreFU::AuxDelete4L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2; 
-	ret = phone2.Open(telServer2, KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-    // open the message store1
-    RMobileSmsMessaging messaging1;
-    TInt res = messaging1.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging1);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store1;
-    res = store1.Open(messaging1, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store1);
-
-    // open the message store2
-    RMobileSmsMessaging messaging2;
-    res = messaging2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging2);
-
-    RMobileSmsStore store2;
-    res = store2.Open(messaging2, KETelIccSmsStore);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store2);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	//-------------------------------------------------------------------------
-
-	TInt index1 = 1;
-	TInt index2 = 2;
-
-	TMockLtsyData1<TInt> expMockData11(index1);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RMobileSmsStore::Delete
- 	//-------------------------------------------------------------------------
-
-	expMockData11.SerialiseL(expData);
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone, 10);
-	store1.Delete(requestStatus1, index1);
-
-	store2.Delete(requestStatus2, index2);
-
-	User::WaitForRequest(requestStatus1);        
-	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
-
-	User::WaitForRequest(requestStatus2);        
-	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
-
-	AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(8, this); // phone2, telServer2, expData, this
-	                                      // store1, messaging1, store2, messaging2
-
-	}
-
-void CCTsySmsStoreFU::AuxDelete5L(const TDesC& aName)
-	{
-	
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	//-------------------------------------------------------------------------
-
-	TInt index = 1;
-
-	TMockLtsyData1<TInt> expMockData1(index);
-	expMockData1.SerialiseL(expData);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test timeout of RMobileSmsStore::Delete
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
-
-    store.Delete(requestStatus, index);
-    
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
-
-	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
-
-	}
-
-void CCTsySmsStoreFU::AuxDeleteAll1L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll, KErrNotSupported);
-
-    store.DeleteAll(requestStatus);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
-
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->CTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrGeneral);
-
-    store.DeleteAll(requestStatus);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
-
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// RMobileSmsStore::DeleteAll when result is not cached.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
-	
-	store.DeleteAll(requestStatus);
-
-	User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-	
- 	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of RMobileSmsStore::DeleteAll
-	// from LTSY.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
-
-	}
-
-void CCTsySmsStoreFU::AuxDeleteAll2L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
- 	//-------------------------------------------------------------------------
-	// Test cancelling of RMobileSmsStore::DeleteAll
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
- 	
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
-	
-    store.DeleteAll(requestStatus);
-    store.CancelAsyncRequest(EMobilePhoneStoreDeleteAll);
-		
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
-
-	}
-
-void CCTsySmsStoreFU::AuxDeleteAll4L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2; 
-	ret = phone2.Open(telServer2, KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-    // open the message store1
-    RMobileSmsMessaging messaging1;
-    TInt res = messaging1.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging1);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store1;
-    res = store1.Open(messaging1, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store1);
-
-    // open the message store2
-    RMobileSmsMessaging messaging2;
-    res = messaging2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging2);
-
-    RMobileSmsStore store2;
-    res = store2.Open(messaging2, KETelIccSmsStore);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store2);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RMobileSmsStore::DeleteAll
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone, 10);
-    store1.DeleteAll(requestStatus1);
-
-    store2.DeleteAll(requestStatus2);
-    
-    User::WaitForRequest(requestStatus1);        
-	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
-
-    User::WaitForRequest(requestStatus2);        
-	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
-
-    AssertMockLtsyStatusL();
-	CleanupStack::PopAndDestroy(7, this); // phone2, telServer2, this
-	                                      // store1, messaging1, store2, messaging2
-
-	}
-
-void CCTsySmsStoreFU::AuxDeleteAll5L(const TDesC& aName)
-	{
-	
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test timeout of RMobileSmsStore::DeleteAll
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-
-    store.DeleteAll(requestStatus);
-    
-    User::WaitForRequest(requestStatus);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
-
-	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
-
-	}
-
-void CCTsySmsStoreFU::AuxGetInfo1L(const TDesC& aName)
-	{
-	
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-	
-	//-------------------------------------------------------------------------
-
-	TInt maxNumLength(-1);
-	TInt maxTextLength(-1);
-	RMobilePhoneBookStore::TMobilePhoneBookLocation location(RMobilePhoneBookStore::ELocationUnknown);
-	TUint16 changeCounter(0);
-	RMobilePhoneBookStore::TMobilePhoneBookIdentity identity; 
-	RMobilePhoneBookStore::TMobilePhoneStoreType type(RMobilePhoneBookStore::EShortMessageStore);
-	TUint8 totalEntries(1);
-	TInt usedEntries(2);
-	TUint32 caps(KSmsStoreInfoCaps);
-	RMobilePhone::TMobileName name(KETelIccSmsStore);
-
-	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV1;
-	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV1(phoneBookInfoV1);
-
-    TMockLtsyData2<TUint8, TInt> data(totalEntries, usedEntries);
-    data.SerialiseL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo, KErrNotSupported);
-
-	store.GetInfo(requestStatus, pckgInfoV1);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
-
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->CTSY
- 	//-------------------------------------------------------------------------
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrGeneral, completeData);
-
-	store.GetInfo(requestStatus, pckgInfoV1);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
-
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// RMobileSmsStore::GetInfo when result is not cached.
- 	//-------------------------------------------------------------------------
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	
-	store.GetInfo(requestStatus, pckgInfoV1);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-
-	ASSERT_EQUALS(maxNumLength , phoneBookInfoV1.iMaxNumLength  );
-	ASSERT_EQUALS(maxTextLength, phoneBookInfoV1.iMaxTextLength );
-	ASSERT_EQUALS(location     , phoneBookInfoV1.iLocation      );
-	ASSERT_EQUALS(changeCounter, phoneBookInfoV1.iChangeCounter );
-	ASSERT_EQUALS(0, phoneBookInfoV1.iIdentity.Compare(identity));
-	ASSERT_EQUALS(type         , phoneBookInfoV1.iType          );
-	ASSERT_EQUALS(totalEntries , static_cast<TUint8>(phoneBookInfoV1.iTotalEntries));
-	ASSERT_EQUALS(usedEntries  , phoneBookInfoV1.iUsedEntries   );
-	ASSERT_EQUALS(caps, phoneBookInfoV1.iCaps);
-	ASSERT_EQUALS(0, phoneBookInfoV1.iName.Compare(name));
-	
- 	//-------------------------------------------------------------------------
-	// TEST D: RMobileSmsStore::GetInfo again, this time CTSY
-	// will get result from the cache.
- 	//-------------------------------------------------------------------------
-
-	usedEntries = 0;
-	totalEntries = 0;
-	
-	completeData.Close();
-	
-    TMockLtsyData2<TUint8, TInt> data2(totalEntries, usedEntries);
-    data2.SerialiseL(completeData);
-	
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	
-	store.GetInfo(requestStatus, pckgInfoV1);
-    
-    User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
-
-	ASSERT_EQUALS(maxNumLength , phoneBookInfoV1.iMaxNumLength  );
-	ASSERT_EQUALS(maxTextLength, phoneBookInfoV1.iMaxTextLength );
-	ASSERT_EQUALS(location     , phoneBookInfoV1.iLocation      );
-	ASSERT_EQUALS(changeCounter, phoneBookInfoV1.iChangeCounter );
-	ASSERT_EQUALS(0, phoneBookInfoV1.iIdentity.Compare(identity));
-	ASSERT_EQUALS(type         , phoneBookInfoV1.iType          );
-	ASSERT_EQUALS(totalEntries , static_cast<TUint8>(phoneBookInfoV1.iTotalEntries));
-	ASSERT_EQUALS(usedEntries  , phoneBookInfoV1.iUsedEntries   );
-	ASSERT_EQUALS(caps, phoneBookInfoV1.iCaps);
-	ASSERT_EQUALS(0, phoneBookInfoV1.iName.Compare(name));
-
- 	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of RMobileSmsStore::GetInfo
-	// from LTSY.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-	
-	//-------------------------------------------------------------------------
-	// TEST F: Successful completion request of RMobileSmsStore::GetInfo
-	// with RMobilePhoneStore::TMobilePhoneStoreInfoV1
-	//-------------------------------------------------------------------------
-	
-	RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfoV1;
-	RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg storeInfoPckg( storeInfoV1 );
-	
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	    
-	store.GetInfo(requestStatus, storeInfoPckg);
-	User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	    
-	ASSERT_EQUALS(KErrNone, requestStatus.Int());   
-	
-	ASSERT_EQUALS(type         , storeInfoV1.iType          );
-	ASSERT_EQUALS(totalEntries , static_cast<TUint8>(storeInfoV1.iTotalEntries));
-	ASSERT_EQUALS(usedEntries  , storeInfoV1.iUsedEntries   );
-	ASSERT_EQUALS(caps, storeInfoV1.iCaps);
-	ASSERT_EQUALS(0, storeInfoV1.iName.Compare(name));
-	   
-	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
-	
-	}
-
-void CCTsySmsStoreFU::AuxGetInfo2L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	
-	TUint8 totalEntries(0);
-	TInt usedEntries(0);
-	
-	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV1;
-	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV1(phoneBookInfoV1);
-
-    TMockLtsyData2<TUint8, TInt> data(totalEntries, usedEntries);
-    data.SerialiseL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// Test cancelling of RMobileSmsStore::GetInfo
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
- 	
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	
-	store.GetInfo(requestStatus, pckgInfoV1);
-    store.CancelAsyncRequest(EMobilePhoneStoreGetInfo);
-		
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(4, this); // completeData, this, messaging, store
-		
-	}
-
-void CCTsySmsStoreFU::AuxGetInfo3L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	
-	TUint8 totalEntries(0);
-	TInt usedEntries(0);
-	
-    TMockLtsyData2<TUint8, TInt> data(totalEntries, usedEntries);
-    data.SerialiseL(completeData);
-
-	//-------------------------------------------------------------------------
-	// Test B: Test passing wrong descriptor size to parameter in
-	// RMobileSmsStore::GetInfo
- 	//-------------------------------------------------------------------------
-	TBuf8<1> badParam;
-	store.GetInfo(requestStatus, badParam);
-
-	User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrArgument, requestStatus.Int());	
-	
-	CleanupStack::PopAndDestroy(4, this); // completeData, this, messaging, store
-		
-	}
-
-void CCTsySmsStoreFU::AuxGetInfo4L(const TDesC& aName)
-	{
-					
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2; 
-	ret = phone2.Open(telServer2, KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    // open the message store1
-    RMobileSmsMessaging messaging1;
-    TInt res = messaging1.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging1);
-
-    RMobileSmsStore store1;
-    res = store1.Open(messaging1, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store1);
-
-    // open the message store2
-    RMobileSmsMessaging messaging2;
-    res = messaging2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging2);
-
-    RMobileSmsStore store2;
-    res = store2.Open(messaging2, KETelIccSmsStore);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store2);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
- 	//-------------------------------------------------------------------------
-	// It is common value for both function.
-
-	RMobilePhoneBookStore::TMobilePhoneBookIdentity identity; 
-	
- 	//-------------------------------------------------------------------------
-	// param for first function
-	
-	TUint8 totalEntries1(1);
-	TInt   usedEntries1(2);
-
-	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV11;
-	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV11(phoneBookInfoV11);
-
-    TMockLtsyData2<TUint8, TInt> data1(totalEntries1, usedEntries1);
-
- 	//-------------------------------------------------------------------------
-	// param for second function
-	
-	TUint8 totalEntries2(10);
-	TInt   usedEntries2(20);
-
-	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV12;
-	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV12(phoneBookInfoV12);
-
-    TMockLtsyData2<TUint8, TInt> data2(totalEntries2, usedEntries2);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RMobileSmsStore::GetInfo
- 	//-------------------------------------------------------------------------
-
-	data1.SerialiseL(completeData);
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-
-    store1.GetInfo(requestStatus1, pckgInfoV11);
-
-	completeData.Close();
-	data2.SerialiseL(completeData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-
-    store2.GetInfo(requestStatus2, pckgInfoV12);
-    
-    User::WaitForRequest(requestStatus1);        
-	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
-
-    User::WaitForRequest(requestStatus2);        
-    AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
-
-	CleanupStack::PopAndDestroy(8, this); // phone2, telServer2, this, completeData
-	                                      // store1, messaging1, store2, messaging2
-
-	}
-
-void CCTsySmsStoreFU::AuxGetInfo5L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	//-------------------------------------------------------------------------
-
-	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV1;
-	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV1(phoneBookInfoV1);
-
-	//-------------------------------------------------------------------------
-	// Test A: Test timeout of RMobileSmsStore::GetInfo
- 	//-------------------------------------------------------------------------
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-	store.GetInfo(requestStatus, pckgInfoV1);
-
-	User::WaitForRequest(requestStatus);        
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
-
-	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
-
-	}	
-
-void CCTsySmsStoreFU::AuxStart1L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
-	CFilteringActiveScheduler scheduler;
-	CActiveScheduler::Install(&scheduler);
-
-	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
-	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
-		CRetrieveMobilePhoneSmsList::NewL(store, type);
-	CleanupStack::PushL(retrieveMobilePhoneSmsList);
-	
-	CActiveRetriever::ResetRequestsNumber();
-	CActiveRetriever* activeRetriever = 
-						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
-	CleanupStack::PushL(activeRetriever);
-	scheduler.AddRetrieverL(*activeRetriever);
-
- 	//-------------------------------------------------------------------------
-
-	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
-	CleanupStack::PushL(smsMsgArray);
-
-	TSmsMsg smsMsg;
-    smsMsg.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg.iServiceCentre = _L("ServiceSenter"); 
-    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
-    smsMsg.iLocation      = 200;
-    smsMsg.iDeleteAfterClientAck = EFalse;
-    smsMsg.iSmsClass2            = ETrue;
-	smsMsgArray->AppendL(&smsMsg, 1);
-    
-	TBool receivedClass2ToBeReSent(ETrue);
-	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
-		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
-
- 	//-------------------------------------------------------------------------
-	// TEST E: Unsolicited completion of CRetrieveMobilePhoneSmsList::Start
-	// from LTSY.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
-	completeSmsMsgLtsyData.SerialiseL(completeData);
-    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
-
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-	AssertMockLtsyStatusL();
-	
- 	//-------------------------------------------------------------------------
-	// TEST A: failure to dispatch request to LTSY
- 	//-------------------------------------------------------------------------
-
-	TUint8 totalEntries(1);
-	TInt usedEntries(2);
-
-	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
-	completeData.Close();
-	dataGetInfo.SerialiseL(completeData);
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNotSupported);
-
-	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
-	activeRetriever->Activate();
-
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrNotSupported, activeRetriever->iStatus.Int());
-	AssertMockLtsyStatusL();
-	
-	//-------------------------------------------------------------------------
-	// TEST B: failure on completion of pending request from LTSY->CTSY
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
-	completeData.Close();
-	completeSmsMsgLtsyData.SerialiseL(completeData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrGeneral, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-    retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
-	activeRetriever->Activate();
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrGeneral, activeRetriever->iStatus.Int());
-	AssertMockLtsyStatusL();
-	
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// CRetrieveMobilePhoneSmsList::Start when result is not cached.
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
-	iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-    retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
-	activeRetriever->Activate();
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(3); // retrieveMobilePhoneSmsList, 
-	                                // activeRetriever, smsMsgArray
-	CActiveScheduler::Install(NULL);
-	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
-
-	}	
-
-void CCTsySmsStoreFU::AuxStart2L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	CFilteringActiveScheduler scheduler;
-	CActiveScheduler::Install(&scheduler);
-
-	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
-	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
-		CRetrieveMobilePhoneSmsList::NewL(store, type);
-	CleanupStack::PushL(retrieveMobilePhoneSmsList);
-	
-	CActiveRetriever::ResetRequestsNumber();
-	CActiveRetriever* activeRetriever = 
-						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
-	CleanupStack::PushL(activeRetriever);
-	scheduler.AddRetrieverL(*activeRetriever);
-	
- 	//-------------------------------------------------------------------------
-
-	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
-	CleanupStack::PushL(smsMsgArray);
-
-	TSmsMsg smsMsg;
-    smsMsg.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg.iServiceCentre = _L("ServiceSenter"); 
-    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
-    smsMsg.iLocation      = 200;
-    smsMsg.iDeleteAfterClientAck = EFalse;
-    smsMsg.iSmsClass2            = ETrue;
-	smsMsgArray->AppendL(&smsMsg, 1);
-    
-	TBool receivedClass2ToBeReSent(ETrue);
-	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
-		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
-
-	//-------------------------------------------------------------------------
-	// Test cancelling of CRetrieveMobilePhoneSmsList::Start
- 	//-------------------------------------------------------------------------
-
-	TUint8 totalEntries(1);
-	TInt usedEntries(2);
-
-	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
-	dataGetInfo.SerialiseL(completeData);
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
-	completeData.Close();
-	completeSmsMsgLtsyData.SerialiseL(completeData);
-    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData, 10);
-
-	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
-	activeRetriever->Activate(CActiveRetriever::ECaseGeneralCancelCase);
-
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
-
-	// Wait for completion of iMockLTSY.NotifyTerminated
-	User::WaitForRequest(mockLtsyStatus);
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-	AssertMockLtsyStatusL();
-
-    iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
-    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
-	 */
-    iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-    retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
-	activeRetriever->Activate(CActiveRetriever::ECasePhase2Cancel);
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
-
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(3); // retrieveMobilePhoneSmsList, 
-	                                // activeRetriever, smsMsgArray
-	CActiveScheduler::Install(NULL);
-	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
-
-	}
-
-void CCTsySmsStoreFU::AuxStart4L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-	TRequestStatus mockLtsyStatus;
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2; 
-	ret = phone2.Open(telServer2, KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    // open the message store1
-    RMobileSmsMessaging messaging1;
-    TInt res = messaging1.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging1);
-
-    RMobileSmsStore store1;
-    res = store1.Open(messaging1, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store1);
-
-    // open the message store2
-    RMobileSmsMessaging messaging2;
-    res = messaging2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging2);
-
-    RMobileSmsStore store2;
-    res = store2.Open(messaging2, KETelIccSmsStore);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store2);
-
-	CFilteringActiveScheduler scheduler;
-	CActiveScheduler::Install(&scheduler);
-
-	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
-	
-	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList1 = 
-		CRetrieveMobilePhoneSmsList::NewL(store1, type);
-	CleanupStack::PushL(retrieveMobilePhoneSmsList1);
-	
-	CActiveRetriever::ResetRequestsNumber();
-	CActiveRetriever* activeRetriever1 = 
-						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList1);
-	CleanupStack::PushL(activeRetriever1);
-	scheduler.AddRetrieverL(*activeRetriever1);
-
-	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList2 = 
-		CRetrieveMobilePhoneSmsList::NewL(store2, type);
-	CleanupStack::PushL(retrieveMobilePhoneSmsList2);
-	
-	CActiveRetriever::ResetRequestsNumber();
-	CActiveRetriever* activeRetriever2 = 
-						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList2);
-	CleanupStack::PushL(activeRetriever2);
-	scheduler.AddRetrieverL(*activeRetriever2);
-	
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting CRetrieveMobilePhoneSmsList::Start
- 	//-------------------------------------------------------------------------
-
-	TUint8 totalEntries(1);
-	TInt usedEntries(2);
-
-	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
-	dataGetInfo.SerialiseL(completeData);
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
-
- 	//-------------------------------------------------------------------------
-
-	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
-	CleanupStack::PushL(smsMsgArray);
-
-	TSmsMsg smsMsg;
-    smsMsg.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg.iServiceCentre = _L("ServiceSenter"); 
-    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
-    smsMsg.iLocation      = 200;
-    smsMsg.iDeleteAfterClientAck = EFalse;
-    smsMsg.iSmsClass2            = ETrue;
-	smsMsgArray->AppendL(&smsMsg, 1);
-    
-	TBool receivedClass2ToBeReSent(ETrue);
-	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
-		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
-	
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
-	completeData.Close();
-	completeSmsMsgLtsyData.SerialiseL(completeData);
-    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
-	 */
-    iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	retrieveMobilePhoneSmsList1->Start(activeRetriever1->Status());
-	activeRetriever1->Activate();
-
-	retrieveMobilePhoneSmsList2->Start(activeRetriever2->Status());
-	activeRetriever2->Activate();
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrNone, activeRetriever1->iStatus.Int());
-	ASSERT_EQUALS(KErrServerBusy, activeRetriever2->iStatus.Int());
-
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(5); // retrieveMobilePhoneSmsList1, 
-									// retrieveMobilePhoneSmsList2,
-									// activeRetriever1,
-									// activeRetriever2, smsMsgArray
-	CActiveScheduler::Install(NULL);
-	CleanupStack::PopAndDestroy(8, this); // phone2, telServer2, this
-	                                      // store1, messaging1, store2, messaging2, completeData
-	
-	}
-
-void CCTsySmsStoreFU::AuxStart5L(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-	TRequestStatus mockLtsyStatus;
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	CFilteringActiveScheduler scheduler;
-	CActiveScheduler::Install(&scheduler);
-
-	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
-	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
-		CRetrieveMobilePhoneSmsList::NewL(store, type);
-	CleanupStack::PushL(retrieveMobilePhoneSmsList);
-	
-	CActiveRetriever::ResetRequestsNumber();
-	CActiveRetriever* activeRetriever = 
-						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
-	CleanupStack::PushL(activeRetriever);
-	scheduler.AddRetrieverL(*activeRetriever);
-	
-	//-------------------------------------------------------------------------
-	// Test A: Test timeout of CRetrieveMobilePhoneSmsList::Start
- 	//-------------------------------------------------------------------------
-
-	TUint8 totalEntries(1);
-	TInt usedEntries(2);
-
-	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
-	dataGetInfo.SerialiseL(completeData);
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
-
- 	//-------------------------------------------------------------------------
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
-	 */
-    iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	ASSERT_TRUE(EFalse);
-
-	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
-	activeRetriever->Activate();
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrTimedOut, activeRetriever->iStatus.Int());
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(2); // retrieveMobilePhoneSmsList, 
-	                                // activeRetriever,
-	CActiveScheduler::Install(NULL);
-	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
-	
-	}
-
-void CCTsySmsStoreFU::AuxNotifyStoreEvent1L(const TDesC& aName)
-	{
-	
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus requestStatus2;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-	
-	RBuf8 expData;
-	CleanupClosePushL(expData);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-	
- 	//-------------------------------------------------------------------------
-	
-	TInt index (0);
-	TUint32 storeEvent(0);
-
-	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
-	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
-	
-	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
-	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
-	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
-	entryV1.iMsgData = _L8("Hello, World!");
-	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
-	entryV1.iIndex = index;
-	
-	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
-		expMockData2(entryV1, entryV1.iIndex);
-
-    TUint8 location = 255;
-	TBool  receivedClass2ToBeResent = ETrue;
-
-	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
-	
- 	//-------------------------------------------------------------------------
-	// TEST C: Successful completion request of
-	// RMobileSmsStore::NotifyStoreEvent when result is not cached.
- 	//-------------------------------------------------------------------------
-
-	//-------------------------------------------------------------------------
-	// Complete for Delete with RMobilePhoneStore::KStoreEntryDeleted
- 	//-------------------------------------------------------------------------
-
-	TMockLtsyData1<TInt> expMockData1(index);
-	
-	expMockData1.SerialiseL(expData);
-	
-	store.NotifyStoreEvent(requestStatus, storeEvent, index);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
-	
-	store.Delete(requestStatus2, index);
-
-	User::WaitForRequest(requestStatus2);        
-	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
-	
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
-    
-    TUint32 event = RMobilePhoneStore::KStoreEntryDeleted;
-    ASSERT_EQUALS(event, storeEvent);	
-    ASSERT_EQUALS(0    , index     );	
-	
-	//-------------------------------------------------------------------------
-	// Complete for Write with RMobilePhoneStore::KStoreEntryAdded
- 	//-------------------------------------------------------------------------
-	
-    index = 0;
-	store.NotifyStoreEvent(requestStatus, storeEvent, index);
-
-	expData.Close();
-	expMockData2.SerialiseL(expData);	
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-
-	completeMockData2.SerialiseL(completeData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	store.Write(requestStatus2, pckgEntryV1); 
-	
-	User::WaitForRequest(requestStatus2);
-    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-	
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
-    
-    event = RMobilePhoneStore::KStoreEntryAdded | RMobilePhoneStore::KStoreFull;
-    ASSERT_EQUALS(event                      , storeEvent);	
-    ASSERT_EQUALS(static_cast<TInt>(location), index     );	
-	
-	//-------------------------------------------------------------------------
-	// Complete for Write with RMobilePhoneStore::KStoreFull
- 	//-------------------------------------------------------------------------
-
-    index = 0;
-	entryV1.iIndex = index;
-	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
-		expMockData2b(entryV1, entryV1.iIndex);
-
-	expData.Close();
-	expMockData2b.SerialiseL(expData);
-
-	store.NotifyStoreEvent(requestStatus, storeEvent, index);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrDiskFull, completeData);
-
-	/* 
-	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
-	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
-	 */
-	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
-
-	store.Write(requestStatus2, pckgEntryV1); 
-	
-	User::WaitForRequest(requestStatus2);
-    ASSERT_EQUALS(KErrDiskFull, requestStatus2.Int());
-	
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
-    
-    event = RMobilePhoneStore::KStoreFull;
-    ASSERT_EQUALS(event, storeEvent);	
-    ASSERT_EQUALS(-1   , index     );	
-
-	//-------------------------------------------------------------------------
-	// Complete for DeleteAllSns with RMobilePhoneStore::KStoreEmpty
- 	//-------------------------------------------------------------------------
-
-	store.NotifyStoreEvent(requestStatus, storeEvent, index);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
-	
-	store.DeleteAll(requestStatus2);
-
-	User::WaitForRequest(requestStatus2);        
-	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
-	
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
-    
-    event = RMobilePhoneStore::KStoreEmpty;
-    ASSERT_EQUALS(event, storeEvent);	
-    ASSERT_EQUALS(-1   , index     );	
-
-    //-------------------------------------------------------------------------
-	// for coverage increasing
- 	//-------------------------------------------------------------------------
-
-	TUint8 totalEntries(1);
-	TInt usedEntries(1);
-
-	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
-	completeData.Close();
-	dataGetInfo.SerialiseL(completeData);
-
-	TRequestStatus mockLtsyStatus;
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
-	User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
-
-	expData.Close();
-	expMockData1.SerialiseL(expData);
-	
-	store.NotifyStoreEvent(requestStatus, storeEvent, index);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
-	
-	store.Delete(requestStatus2, index);
-
-	User::WaitForRequest(requestStatus2);        
-	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
-	
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
-    
-    event = RMobilePhoneStore::KStoreEntryDeleted | RMobilePhoneStore::KStoreEmpty;
-    ASSERT_EQUALS(event, storeEvent);	
-    ASSERT_EQUALS(-1    , index     );	
-
-    //-------------------------------------------------------------------------
-	// for coverage increasing
-	//-------------------------------------------------------------------------
-
-    TBool smsInd( EFalse );
-
-    TSmsMsg smsMsg;
-	smsMsg.iSmsMsg = _L8("Hello, World!"); 
-	smsMsg.iServiceCentre = _L("ServiceSenter1"); 
-	smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-	smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-	smsMsg.iMessageStatus = KSimSmsMtRead; 
-	smsMsg.iLocation      = 200;
-	smsMsg.iDeleteAfterClientAck = EFalse;
-	smsMsg.iSmsClass2            = ETrue;
-    TSmsMsg* smsMsgPtr(&smsMsg);
-
-    TMockLtsyData2<TBool, TSmsMsg*> compTsyData(smsInd, smsMsgPtr);
-	completeData.Close();
-	compTsyData.SerialiseL(completeData);
-
-	iMockLTSY.NotifyTerminated(mockLtsyStatus);
-	iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, completeData);
-	
-    TDesC8* msgPtr = NULL;
-    TInt rpCause(KErrGsmSMSUnspecifiedProtocolError);
-    TMockLtsyData2<TDesC8*, TInt> expTsyData(msgPtr, rpCause);
-
-    expData.Close();
-    expTsyData.SerialiseL(expData);
-    iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, expData);
-
-    User::WaitForRequest(mockLtsyStatus);
-	AssertMockLtsyStatusL();
-	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
-
-	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this, messaging, store
-
-	}
-
-void CCTsySmsStoreFU::AuxNotifyStoreEvent2L(const TDesC& aName)
-	{
-	
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus requestStatus2;
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
- 	//-------------------------------------------------------------------------
-
-	TInt index (0);
-	TUint32 storeEvent(0);
-	
- 	//-------------------------------------------------------------------------
-	// Test cancelling of RMobileSmsStore::NotifyStoreEvent
- 	//-------------------------------------------------------------------------
-
-	store.NotifyStoreEvent(requestStatus, storeEvent, index);
-	store.CancelAsyncRequest(EMobilePhoneStoreNotifyStoreEvent);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
-	
-	store.DeleteAll(requestStatus2);
-
-	User::WaitForRequest(requestStatus2);
-    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-    
-    User::WaitForRequest(requestStatus);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrCancel, requestStatus.Int());
-
-	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
-	}
-
-void CCTsySmsStoreFU::AuxNotifyStoreEvent4L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus1;
-	TRequestStatus requestStatus2;
-	TRequestStatus requestStatus11;
-	TRequestStatus requestStatus21;
-	
-	// Open second client
-	RTelServer telServer2;
-	TInt ret = telServer2.Connect();
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(telServer2);
-
-	RMobilePhone phone2; 
-	ret = phone2.Open(telServer2, KMmTsyPhoneName);
-	ASSERT_EQUALS(KErrNone, ret);
-	CleanupClosePushL(phone2);
-
-    // open the message store1
-    RMobileSmsMessaging messaging1;
-    TInt res = messaging1.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging1);
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    RMobileSmsStore store1;
-    res = store1.Open(messaging1, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store1);
-
-    // open the message store2
-    RMobileSmsMessaging messaging2;
-    res = messaging2.Open(phone2);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging2);
-
-    RMobileSmsStore store2;
-    res = store2.Open(messaging2, KETelIccSmsStore);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store2);
-
- 	//-------------------------------------------------------------------------
-
-	TInt index1 (0);
-	TInt index2 (0);
-	TUint32 storeEvent1(0);
-	TUint32 storeEvent2(0);
-	
-	//-------------------------------------------------------------------------
-	// Test A: Test multiple clients requesting RMobileSmsStore::NotifyStoreEvent
- 	//-------------------------------------------------------------------------
-
-	store1.NotifyStoreEvent(requestStatus1, storeEvent1, index1);
-	store2.NotifyStoreEvent(requestStatus2, storeEvent2, index2);
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
-	
-	store1.DeleteAll(requestStatus11);
-
-    User::WaitForRequest(requestStatus11);
-	AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus11.Int());
-
-	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
-	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
-	
-	store1.DeleteAll(requestStatus21);
-
-    User::WaitForRequest(requestStatus21);
-    ASSERT_EQUALS(KErrNone, requestStatus21.Int());
-    
-    User::WaitForRequest(requestStatus1);
-    ASSERT_EQUALS(KErrNone, requestStatus1.Int());
-
-    User::WaitForRequest(requestStatus2);
-    AssertMockLtsyStatusL();
-    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
-
-    TUint32 event = RMobilePhoneStore::KStoreEmpty;
-
-    ASSERT_EQUALS(event, storeEvent1);
-    ASSERT_EQUALS(-1   , index1     );
-
-    ASSERT_EQUALS(event, storeEvent2);
-    ASSERT_EQUALS(-1   , index2     );
-    
-	CleanupStack::PopAndDestroy(7, this); // phone2, telServer2, this,
-	                                      // store1, messaging1, store2, messaging2
-	
-	}
-
-void CCTsySmsStoreFU::AuxStart1bL(const TDesC& aName)
-	{
-
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	TRequestStatus requestStatus;
-    TRequestStatus mockLtsyStatus;
-
-	/*
-	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	 * when RMobileSmsStore's object is opened.
-	 */
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-    // open the message store
-    RMobileSmsMessaging messaging;
-    TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-    RMobileSmsStore store;
-    res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	RBuf8 completeData;
-	CleanupClosePushL(completeData);
-
-	CFilteringActiveScheduler scheduler;
-	CActiveScheduler::Install(&scheduler);
-
-	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
-	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
-		CRetrieveMobilePhoneSmsList::NewL(store, type);
-	CleanupStack::PushL(retrieveMobilePhoneSmsList);
-	
-	CActiveRetriever::ResetRequestsNumber();
-	CActiveRetriever* activeRetriever = 
-						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
-	CleanupStack::PushL(activeRetriever);
-	scheduler.AddRetrieverL(*activeRetriever);
-
- 	//-------------------------------------------------------------------------
-
-	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
-	CleanupStack::PushL(smsMsgArray);
-
-	TSmsMsg smsMsg;
-    smsMsg.iSmsMsg = _L8("Hello, World!"); 
-    smsMsg.iServiceCentre = _L("ServiceSenter"); 
-    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
-    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
-    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
-    smsMsg.iLocation      = 200;
-    smsMsg.iDeleteAfterClientAck = EFalse;
-    smsMsg.iSmsClass2            = ETrue;
-	smsMsgArray->AppendL(&smsMsg, 1);
-    
-	TBool receivedClass2ToBeReSent(ETrue);
-	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
-		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
-
- 	//-------------------------------------------------------------------------
-	// TEST C: Failure of CRetrieveMobilePhoneSmsList::Start when result 
-	// is not cached (or ready).
- 	//-------------------------------------------------------------------------
-
-	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
-	activeRetriever->Activate();
-	scheduler.StartScheduler();
-
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	// Since the cache is not ready, NO SMS is found.
-	ASSERT_EQUALS(KErrNotFound, activeRetriever->iStatus.Int());
-	AssertMockLtsyStatusL();
-	
-	CleanupStack::PopAndDestroy(3); // retrieveMobilePhoneSmsList, 
-	                                // activeRetriever, smsMsgArray
-	CActiveScheduler::Install(NULL);
-	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
-
-	}	
-
-void CCTsySmsStoreFU::AuxStartBatch1L(const TDesC& aName)
-	{
-	OpenEtelServerL(EUseExtendedError);
-	CleanupStack::PushL(TCleanupItem(Cleanup,this));
-	OpenPhoneL();
-
-	// HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
-	// when RMobileSmsStore's object is opened.
-	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
-
-	// open the message store
-	RMobileSmsMessaging messaging;
-	TInt res = messaging.Open(iPhone);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(messaging);
-
-	RMobileSmsStore store;
-	res = store.Open(messaging, aName);
-	ASSERT_EQUALS(KErrNone, res);
-	CleanupClosePushL(store);
-
-	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
-	CleanupStack::PushL(smsMsgArray);
-
-	TSmsMsg smsMsg;
-	smsMsgArray->AppendL(&smsMsg, 1);
-		    
-	TBool receivedClass2ToBeReSent(ETrue);
-	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
-			completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
-	
-	CFilteringActiveScheduler scheduler;
-	CActiveScheduler::Install(&scheduler);
-	
-	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
-	
-	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = CRetrieveMobilePhoneSmsList::NewL(store, type);
-	CleanupStack::PushL(retrieveMobilePhoneSmsList);
-	
-	CActiveRetriever::ResetRequestsNumber();
-	CActiveRetriever* activeRetriever = CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
-	CleanupStack::PushL(activeRetriever);
-		
-	scheduler.AddRetrieverL(*activeRetriever);
-	
-	TRequestStatus requestStatus;
-	retrieveMobilePhoneSmsList->StartBatch(activeRetriever->Status(),1,1);
-	
-	activeRetriever->Activate();
-	scheduler.StartScheduler();
-	
-	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
-	ASSERT_EQUALS(KErrNotSupported, activeRetriever->iStatus.Int());
-	AssertMockLtsyStatusL();
-		
-	CleanupStack::PopAndDestroy(6, this); // this, messaging, store, smsMsgArray, retrieveMobilePhoneSmsList, activeRetriever
-		
-	}
+// Copyright (c) 2007-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:
+// The TEFUnit test suite for SmsStore in the Common TSY.
+// 
+//
+
+/**
+ @file 
+*/
+
+#include "cctsysmsstorefu.h"
+#include <etel.h>
+#include <etelmm.h>
+#include <et_clsvr.h>
+#include <ctsy/mmtsy_names.h>
+#include <ctsy/serviceapi/mmtsy_ipcdefs.h>
+#include "tmockltsydata.h"
+#include <ctsy/serviceapi/gsmerror.h>
+#include "cctsyactiveretriever.h"
+#include <mmretrieve.h>
+#include <ctsy/serviceapi/cmmsmsutility.h>
+
+CTestSuite* CCTsySmsStoreFU::CreateSuiteL(const TDesC& aName)
+	{
+	SUB_SUITE;
+
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestNotifyStoreEvent0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestNotifyStoreEvent0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestNotifyStoreEvent0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestRead0005L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDelete0005L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestGetInfo0005L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestDeleteAll0005L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0003L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestWrite0005L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0001L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0001bL);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0002L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0004L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStart0005L);
+	ADD_TEST_STEP_ISO_CPP(CCTsySmsStoreFU, TestStartBatch0001L);
+
+	END_SUITE;
+	}
+
+
+//
+// Actual test cases
+//
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSNSE-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::NotifyStoreEvent
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::NotifyStoreEvent
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestNotifyStoreEvent0001L()
+	{
+	AuxNotifyStoreEvent1L(KETelIccSmsStore);
+
+ 	//-------------------------------------------------------------------------
+	// for coverage increasing
+ 	//-------------------------------------------------------------------------
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, KETelMeSmsStore);
+	ASSERT_EQUALS(KErrNotSupported, res);
+
+	CleanupStack::PopAndDestroy(2, this); // this, messaging
+	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSNSE-0002
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::NotifyStoreEvent
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileSmsStore::NotifyStoreEvent
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestNotifyStoreEvent0002L()
+	{
+	AuxNotifyStoreEvent2L(KETelIccSmsStore);	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSNSE-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::NotifyStoreEvent
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileSmsStore::NotifyStoreEvent
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestNotifyStoreEvent0004L()
+	{
+	AuxNotifyStoreEvent4L(KETelIccSmsStore);	
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Read
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Read
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestRead0001L()
+	{
+	AuxRead1L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0002
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::Read
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileSmsStore::Read
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestRead0002L()
+	{
+	AuxRead2L(KETelIccSmsStore);	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Read with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Read with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestRead0003L()
+	{
+	AuxRead3L(KETelIccSmsStore);	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::Read
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileSmsStore::Read
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestRead0004L()
+	{
+	AuxRead4L(KETelIccSmsStore);	
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSR-0005
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Read with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Read and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestRead0005L()
+	{
+	AuxRead5L(KETelIccSmsStore);	
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDelete0001L()
+	{
+	AuxDelete1L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0002
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileSmsStore::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDelete0002L()
+	{
+	AuxDelete2L(KETelIccSmsStore);
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::Delete
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileSmsStore::Delete
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDelete0004L()
+	{
+	AuxDelete4L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSD-0005
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Delete with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Delete and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDelete0005L()
+	{
+	AuxDelete5L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::GetInfo
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::GetInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestGetInfo0001L()
+	{
+	AuxGetInfo1L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0002
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::GetInfo
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileSmsStore::GetInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestGetInfo0002L()
+	{
+	AuxGetInfo2L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::GetInfo with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::GetInfo with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestGetInfo0003L()
+	{
+	AuxGetInfo3L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::GetInfo
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileSmsStore::GetInfo
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestGetInfo0004L()
+	{
+	AuxGetInfo4L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSGI-0005
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::GetInfo with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::GetInfo and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestGetInfo0005L()
+	{
+	AuxGetInfo5L(KETelIccSmsStore);
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::DeleteAll
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::DeleteAll
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDeleteAll0001L()
+	{
+	AuxDeleteAll1L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0002
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::DeleteAll
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileSmsStore::DeleteAll
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDeleteAll0002L()
+	{
+	AuxDeleteAll2L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::DeleteAll
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileSmsStore::DeleteAll
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDeleteAll0004L()
+	{
+	AuxDeleteAll4L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSDA-0005
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::DeleteAll with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::DeleteAll and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestDeleteAll0005L()
+	{
+	AuxDeleteAll5L(KETelIccSmsStore);
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Write
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Write
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestWrite0001L() 
+	{
+	AuxWrite1L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0002
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of RMobileSmsStore::Write
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of RMobileSmsStore::Write
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestWrite0002L()
+	{
+	AuxWrite2L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0003
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Write with bad parameter data
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Write with bad parameter data
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestWrite0003L()
+	{
+	
+	/*
+	Test passing wrong descriptor size to parameter fails. 
+	Function execution invokes KERN:4 panic.
+	See line 691 [TInt CMmSmsStorageTsy::CompleteWriteSms()] in file CMmSmsStorageTsy.cpp.
+	*/
+	ERR_PRINTF2(_L("<font color=Orange>$CTSYKnownFailure: defect id = %d</font>"), 420601);
+	
+	AuxWrite3L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMobileSmsStore::Write
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to RMobileSmsStore::Write
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestWrite0004L()
+	{
+	AuxWrite4L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSW-0005
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for RMobileSmsStore::Write with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes RMobileSmsStore::Write and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestWrite0005L()
+	{
+	AuxWrite5L(KETelIccSmsStore);
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::Start
+@SYMTestPriority High
+@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::Start
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestStart0001L()
+	{
+	AuxStart1L(KETelIccSmsStore);
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0001b
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::Start
+@SYMTestPriority High
+@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::Start
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestStart0001bL()
+	{
+	AuxStart1bL(KETelIccSmsStore);
+	}
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0002
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for cancelling of CRetrieveMobilePhoneSmsList::Start
+@SYMTestPriority High
+@SYMTestActions Invokes cancelling of CRetrieveMobilePhoneSmsList::Start
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestStart0002L()
+	{
+	AuxStart2L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0004
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for multiple client requests to CRetrieveMobilePhoneSmsList::Start
+@SYMTestPriority High
+@SYMTestActions Invokes multiple client requests to CRetrieveMobilePhoneSmsList::Start
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestStart0004L()
+	{
+	AuxStart4L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSS-0005
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::Start with timeout
+@SYMTestPriority High
+@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::Start and tests for timeout
+@SYMTestExpectedResults Pass
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestStart0005L()
+	{
+	AuxStart5L(KETelIccSmsStore);
+	}
+
+
+/**
+@SYMTestCaseID BA-CTSY-PBSMS-SMSSSB-0001
+@SYMComponent  telephony_ctsy
+@SYMTestCaseDesc Test support in CTSY for CRetrieveMobilePhoneSmsList::StartBatch 
+@SYMTestPriority High
+@SYMTestActions Invokes CRetrieveMobilePhoneSmsList::StartBatch 
+@SYMTestExpectedResults KErrNotSupported is expected.
+@SYMTestType CT
+*/
+void CCTsySmsStoreFU::TestStartBatch0001L()
+	{
+	AuxStartBatch1L(KETelIccSmsStore);
+	}
+
+
+void CCTsySmsStoreFU::AuxRead1L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
+	
+	TInt index = -1;
+	TMockLtsyData1<TInt> mockIndex(index);
+
+	TSmsMsg smsMsg;
+	smsMsg.iSmsMsg = _L8("Hello, World!"); 
+	smsMsg.iServiceCentre = _L("ServiceSenter1"); 
+	smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+	smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+	smsMsg.iMessageStatus = KSimSmsMtRead; //0x01, RMobileSmsStore::EStoredMessageRead
+	smsMsg.iLocation      = 200;
+	smsMsg.iDeleteAfterClientAck = EFalse;
+	smsMsg.iSmsClass2            = ETrue;
+
+	TMockLtsyData1<TSmsMsg> mockMsg(smsMsg);
+
+	mockIndex.SerialiseL(expData);
+	mockMsg.SerialiseL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData, KErrNotSupported);
+
+	store.Read(requestStatus, pckgEntryV1);
+
+	User::WaitForRequest(requestStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
+
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->CTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrGeneral, completeData);
+
+    store.Read(requestStatus, pckgEntryV1);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
+
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// RMobileENStore::Read when result is not cached.
+ 	//-------------------------------------------------------------------------
+		
+	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
+
+	store.Read(requestStatus, pckgEntryV1);
+
+	User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+
+	ASSERT_EQUALS(0, smsMsg.iSmsMsg.Compare(entryV1.iMsgData));	
+	ASSERT_EQUALS(0, smsMsg.iServiceCentre.Compare(entryV1.iServiceCentre.iTelNumber));	
+	ASSERT_EQUALS(smsMsg.iMobileScTON, entryV1.iServiceCentre.iTypeOfNumber);	
+	ASSERT_EQUALS(smsMsg.iMobileScNPI, entryV1.iServiceCentre.iNumberPlan);	
+	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageRead, entryV1.iMsgStatus);	
+
+	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of RMobileENStore::Read
+	// from LTSY.
+	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+	//-------------------------------------------------------------------------
+	// for coverage increasing
+ 	//-------------------------------------------------------------------------
+	
+	RArray< TUint> messageStatusArray;
+	CleanupClosePushL(messageStatusArray);
+	
+	messageStatusArray.AppendL(KSimSmsMoNotSent);
+	messageStatusArray.AppendL(KSimSmsStatusReportReqNotReceived);
+	messageStatusArray.AppendL(KSimSmsMoSent);
+	messageStatusArray.AppendL(KSimSmsMtNotRead);
+	messageStatusArray.AppendL(KSimSmsStatusReportReqReceivedNotStored);
+	messageStatusArray.AppendL(KSimSmsStatusReportReqReceivedStored);
+	
+	for (TInt i = 0; i < messageStatusArray.Count(); i++)
+		{
+		smsMsg.iMessageStatus = messageStatusArray[i];
+		TMockLtsyData1<TSmsMsg> mockMsgb(smsMsg);
+		
+		completeData.Close();
+		mockMsgb.SerialiseL(completeData);
+		
+		iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
+		iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
+
+	    store.Read(requestStatus, pckgEntryV1);
+	    
+	    User::WaitForRequest(requestStatus);        
+	    AssertMockLtsyStatusL();
+		ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+
+		ASSERT_EQUALS(0, smsMsg.iSmsMsg.Compare(entryV1.iMsgData));	
+		ASSERT_EQUALS(0, smsMsg.iServiceCentre.Compare(entryV1.iServiceCentre.iTelNumber));	
+		ASSERT_EQUALS(smsMsg.iMobileScTON  , entryV1.iServiceCentre.iTypeOfNumber);	
+		ASSERT_EQUALS(smsMsg.iMobileScNPI  , entryV1.iServiceCentre.iNumberPlan);	
+		
+	    switch( smsMsg.iMessageStatus )
+	        {
+	        case KSimSmsMoNotSent: //0x07
+	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageUnsent, entryV1.iMsgStatus);	
+	            break;
+	        case KSimSmsStatusReportReqNotReceived: //0x0D
+	        case KSimSmsMoSent: //0x05
+	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageSent, entryV1.iMsgStatus);	
+	            break;
+	        case KSimSmsMtRead: //0x01
+	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageRead, entryV1.iMsgStatus);	
+	            break;
+	        case KSimSmsMtNotRead: //0x03
+	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageUnread, entryV1.iMsgStatus);	
+	            break;
+		    case KSimSmsStatusReportReqReceivedNotStored: //0x15
+			case KSimSmsStatusReportReqReceivedStored: //0x1D
+	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageDelivered, entryV1.iMsgStatus);	
+	            break;
+	        default:
+	        	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageUnknownStatus, entryV1.iMsgStatus);	
+	            break;
+	        }	
+		}
+	
+
+	CleanupStack::PopAndDestroy(6, this); // expData, completeData, this, messaging, store
+	                                      // messageStatusArray
+	
+	}
+
+void CCTsySmsStoreFU::AuxRead2L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
+	
+	TInt index = -1;
+	TMockLtsyData1<TInt> mockIndex(index);
+
+	TSmsMsg smsMsg;
+    smsMsg.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg.iServiceCentre = _L("ServiceSenter1"); 
+    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg.iMessageStatus = KSimSmsMtRead; //0x01, RMobileSmsStore::EStoredMessageRead
+    smsMsg.iLocation      = 200;
+    smsMsg.iDeleteAfterClientAck = EFalse;
+    smsMsg.iSmsClass2            = ETrue;
+
+	TMockLtsyData1<TSmsMsg> mockMsg(smsMsg);
+
+	mockIndex.SerialiseL(expData);
+	mockMsg.SerialiseL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// Test cancelling of RMobileSmsStore::Read
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ 	
+	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
+	
+    store.Read(requestStatus, pckgEntryV1);
+    store.CancelAsyncRequest(EMobilePhoneStoreRead);
+		
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+
+	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this, messaging, store
+		
+	}
+
+void CCTsySmsStoreFU::AuxRead3L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	
+	TInt index = 56;
+	TMockLtsyData1<TInt> mockIndex(index);
+
+	TSmsMsg smsMsg;
+    smsMsg.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg.iServiceCentre = _L("ServiceSenter1"); 
+    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg.iMessageStatus = KSimSmsMtRead; //0x01, RMobileSmsStore::EStoredMessageRead
+    smsMsg.iLocation      = 200;
+    smsMsg.iDeleteAfterClientAck = EFalse;
+    smsMsg.iSmsClass2            = ETrue;
+
+	TMockLtsyData1<TSmsMsg> mockMsg(smsMsg);
+
+	mockIndex.SerialiseL(expData);
+	mockMsg.SerialiseL(completeData);
+
+	//-------------------------------------------------------------------------
+	// Test B: Test passing wrong descriptor size to parameter in
+	// RMobileSmsStore::Read
+ 	//-------------------------------------------------------------------------
+
+	TBuf8<1> badParam;
+    store.Read(requestStatus, badParam);
+    
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrArgument, requestStatus.Int());	
+	
+	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this, messaging, store
+		
+	}
+	
+void CCTsySmsStoreFU::AuxRead4L(const TDesC& aName)
+	{
+					
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2; 
+	ret = phone2.Open(telServer2, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+    // open the message store1
+    RMobileSmsMessaging messaging1;
+    TInt res = messaging1.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging1);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store1;
+    res = store1.Open(messaging1, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store1);
+
+    // open the message store2
+    RMobileSmsMessaging messaging2;
+    res = messaging2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging2);
+
+    RMobileSmsStore store2;
+    res = store2.Open(messaging2, KETelIccSmsStore);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store2);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// param for first function
+	
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV11;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV11(entryV11);
+	
+	TInt index = -1;
+	TMockLtsyData1<TInt> mockIndex(index);
+
+	TSmsMsg smsMsg1;
+    smsMsg1.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg1.iServiceCentre = _L("ServiceSenter1"); 
+    smsMsg1.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg1.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg1.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
+    smsMsg1.iLocation      = 200;
+    smsMsg1.iDeleteAfterClientAck = EFalse;
+    smsMsg1.iSmsClass2            = ETrue;
+
+	TMockLtsyData1<TSmsMsg> mockMsg1(smsMsg1);
+
+ 	//-------------------------------------------------------------------------
+	// param for second function
+	
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV12;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV12(entryV12);
+	
+	TSmsMsg smsMsg2;
+    smsMsg2.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg2.iServiceCentre = _L("ServiceSenter1"); 
+    smsMsg2.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg2.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg2.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
+    smsMsg2.iLocation      = 200;
+    smsMsg2.iDeleteAfterClientAck = EFalse;
+    smsMsg2.iSmsClass2            = ETrue;
+
+	TMockLtsyData1<TSmsMsg> mockMsg2(smsMsg2);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RMobileSmsStore::Read
+ 	//-------------------------------------------------------------------------
+
+	mockIndex.SerialiseL(expData);
+	mockMsg1.SerialiseL(completeData);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
+
+    store1.Read(requestStatus1, pckgEntryV11);
+
+	completeData.Close();
+	mockMsg2.SerialiseL(completeData);
+
+	iMockLTSY.CompleteL(EMobilePhoneStoreRead, KErrNone, completeData);
+
+    store2.Read(requestStatus2, pckgEntryV12);
+    
+    User::WaitForRequest(requestStatus1);        
+	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
+
+    User::WaitForRequest(requestStatus2);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
+
+	ASSERT_EQUALS(0, smsMsg1.iSmsMsg.Compare(entryV11.iMsgData));	
+	ASSERT_EQUALS(0, smsMsg1.iServiceCentre.Compare(entryV11.iServiceCentre.iTelNumber));	
+	ASSERT_EQUALS(smsMsg1.iMobileScTON, entryV11.iServiceCentre.iTypeOfNumber);	
+	ASSERT_EQUALS(smsMsg1.iMobileScNPI, entryV11.iServiceCentre.iNumberPlan);	
+	ASSERT_EQUALS(RMobileSmsStore::EStoredMessageRead, entryV11.iMsgStatus);	
+	
+	CleanupStack::PopAndDestroy(9, this); // phone2, telServer2, expData, this, completeData
+	                                      // store1, messaging1, store2, messaging2
+
+	}
+	
+void CCTsySmsStoreFU::AuxRead5L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	//-------------------------------------------------------------------------
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
+	
+	TInt index = -1;
+	TMockLtsyData1<TInt> mockIndex(index);
+
+	mockIndex.SerialiseL(expData);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test timeout of RMobileSmsStore::Read
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreRead, expData);
+
+	store.Read(requestStatus, pckgEntryV1);
+	
+	User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
+
+	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
+
+	}	
+	
+void CCTsySmsStoreFU::AuxWrite1L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+
+	TInt index = -1;
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
+	
+	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
+	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
+	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
+	entryV1.iMsgData = _L8("Hello, World!");
+	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
+	entryV1.iIndex = index;
+	
+	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
+		expMockData2(entryV1, entryV1.iIndex);
+
+    TUint8 location = 100;
+	TBool  receivedClass2ToBeResent = ETrue;
+
+	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
+
+	expMockData2.SerialiseL(expData);
+	completeMockData2.SerialiseL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData, KErrNotSupported);
+
+	store.Write(requestStatus, pckgEntryV1);
+
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
+
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->CTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrGeneral, completeData);
+	
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	store.Write(requestStatus, pckgEntryV1);
+
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
+
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// RMobileSmsStore::Write when result is not cached.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	store.Write(requestStatus, pckgEntryV1);
+
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+	ASSERT_EQUALS(static_cast<TUint8>(entryV1.iIndex), location);
+
+ 	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of RMobileSmsStore::Write
+	// from LTSY.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
+	                                      // store, messaging
+	
+	}
+
+void CCTsySmsStoreFU::AuxWrite2L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+
+	TInt index = -1;
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
+	
+	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
+	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
+	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
+	entryV1.iMsgData = _L8("Hello, World!");
+	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
+	entryV1.iIndex = index;
+	
+	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
+		expMockData2(entryV1, entryV1.iIndex);
+
+    TUint8 location = 100;
+	TBool  receivedClass2ToBeResent = ETrue;
+
+	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
+
+	expMockData2.SerialiseL(expData);
+	completeMockData2.SerialiseL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// Test cancelling of RMobileSmsStore::Write
+ 	//-------------------------------------------------------------------------
+ 	
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ 	
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData, 10);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	store.Write(requestStatus, pckgEntryV1);
+
+    store.CancelAsyncRequest(EMobilePhoneStoreWrite);
+
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+	User::WaitForRequest(requestStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
+	                                      // store, messaging
+	}
+	
+void CCTsySmsStoreFU::AuxWrite3L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+	RMobileSmsStore store;
+	res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+	//-------------------------------------------------------------------------
+
+	RMobileSmsStore::TMobileCdmaSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileCdmaSmsEntryV1> pckgEntryV1(entryV1);
+	
+	entryV1.iTeleservice = 0;
+	entryV1.iServiceCategory = 0;
+	entryV1.iRemoteParty.iTypeOfNumber = RMobilePhone::EUnknownNumber;;
+	entryV1.iRemoteParty.iNumberPlan = RMobilePhone::EUnknownNumberingPlan;
+	entryV1.iRemoteParty.iTelNumber = _L("123456");
+	entryV1.iMsgData = _L8("Hello, World!");
+	
+	TMockLtsyData2<RMobileSmsStore::TMobileCdmaSmsEntryV1, TInt> 
+		expMockData2(entryV1, entryV1.iIndex);
+
+	TUint8 location = 100;
+	TBool  receivedClass2ToBeResent = ETrue;
+
+	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
+
+	expMockData2.SerialiseL(expData);
+	completeMockData2.SerialiseL(completeData);
+	
+	//-------------------------------------------------------------------------
+	// Test A: Test passing wrong version of parameters to
+	// RMobileSmsStore::Write
+	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	store.Write(requestStatus, pckgEntryV1);
+
+	User::WaitForRequest(requestStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+
+	//-------------------------------------------------------------------------
+	// Test B: Test passing wrong descriptor size to parameter in
+	// RMobileSmsStore::Write
+	//-------------------------------------------------------------------------
+    TBuf8<1> badSize;
+	store.Write(requestStatus, badSize);
+
+	User::WaitForRequest(requestStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrArgument, requestStatus.Int());	
+
+	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
+	                                      // store, messaging
+
+	}
+
+void CCTsySmsStoreFU::AuxWrite4L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2; 
+	ret = phone2.Open(telServer2, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+    // open the message store1
+    RMobileSmsMessaging messaging1;
+    TInt res = messaging1.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging1);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store1;
+    res = store1.Open(messaging1, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store1);
+
+    // open the message store2
+    RMobileSmsMessaging messaging2;
+    res = messaging2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging2);
+
+    RMobileSmsStore store2;
+    res = store2.Open(messaging2, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store2);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// parameters for first function
+
+	TInt index = -1;
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV11;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV11(entryV11);
+	
+	entryV11.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
+	entryV11.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
+	entryV11.iServiceCentre.iTelNumber    = _L("TelNumber1");
+	entryV11.iMsgData = _L8("Hello, World!");
+	entryV11.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
+	entryV11.iIndex = index;
+	
+	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
+		expMockData21(entryV11, entryV11.iIndex);
+
+    TUint8 location = 100;
+	TBool  receivedClass2ToBeResent = ETrue;
+
+	TMockLtsyData2<TUint8, TBool> completeMockData21(location, receivedClass2ToBeResent);
+
+ 	//-------------------------------------------------------------------------
+	// parameters for second function
+
+	index = 1;
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV12;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV12(entryV12);
+	
+	entryV12.iServiceCentre.iNumberPlan   = RMobilePhone::EServiceCentreSpecificPlan1;
+	entryV12.iServiceCentre.iTypeOfNumber = RMobilePhone::ESubscriberNumber;
+	entryV12.iServiceCentre.iTelNumber    = _L("TelNumber2");
+	entryV12.iMsgData = _L8("Good-bye, World!");
+	entryV12.iMsgStatus = RMobileSmsStore::EStoredMessageDelivered;
+	entryV12.iIndex = index;
+	
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RMobileSmsStore::Write
+ 	//-------------------------------------------------------------------------
+
+	expMockData21.SerialiseL(expData);
+	completeMockData21.SerialiseL(completeData);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData, 10);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	store1.Write(requestStatus1, pckgEntryV11);
+
+	store2.Write(requestStatus2, pckgEntryV12);
+
+    User::WaitForRequest(requestStatus1);
+	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
+
+    User::WaitForRequest(requestStatus2);
+	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
+
+    AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(9, this); // phone2, telServer2, expData, this, completeData
+	                                      // store1, messaging1, store2, messaging2
+	}	
+	
+void CCTsySmsStoreFU::AuxWrite5L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+
+	TInt index = -1;
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
+	
+	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
+	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
+	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
+	entryV1.iMsgData = _L8("Hello, World!");
+	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
+	entryV1.iIndex = index;
+	
+	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
+		expMockData2(entryV1, entryV1.iIndex);
+
+	expMockData2.SerialiseL(expData);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test timeout of RMobileSmsStore::Write
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+
+	store.Write(requestStatus, pckgEntryV1);
+
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
+
+	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this
+	                                      // store, messaging
+
+	}
+
+void CCTsySmsStoreFU::AuxDelete1L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	//-------------------------------------------------------------------------
+
+	TInt index = 1;
+
+	TMockLtsyData1<TInt> expMockData1(index);
+	expMockData1.SerialiseL(expData);
+
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData, KErrNotSupported);
+
+    store.Delete(requestStatus, index);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
+
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->CTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrGeneral);
+
+    store.Delete(requestStatus, index);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
+
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// RMobileSmsStore::Delete when result is not cached.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
+	
+	store.Delete(requestStatus, index);
+
+	User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+	
+ 	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of RMobileSmsStore::Delete
+	// from LTSY.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+	
+	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
+	}
+
+void CCTsySmsStoreFU::AuxDelete2L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	//-------------------------------------------------------------------------
+
+	TInt index = 1;
+
+	TMockLtsyData1<TInt> expMockData1(index);
+	expMockData1.SerialiseL(expData);
+
+	//-------------------------------------------------------------------------
+	// Test cancelling of RMobileSmsStore::Delete
+	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
+	
+	store.Delete(requestStatus, index);
+	store.CancelAsyncRequest(EMobilePhoneStoreDelete);
+		
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+	User::WaitForRequest(requestStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
+
+	}
+
+void CCTsySmsStoreFU::AuxDelete4L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2; 
+	ret = phone2.Open(telServer2, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+    // open the message store1
+    RMobileSmsMessaging messaging1;
+    TInt res = messaging1.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging1);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store1;
+    res = store1.Open(messaging1, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store1);
+
+    // open the message store2
+    RMobileSmsMessaging messaging2;
+    res = messaging2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging2);
+
+    RMobileSmsStore store2;
+    res = store2.Open(messaging2, KETelIccSmsStore);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store2);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	//-------------------------------------------------------------------------
+
+	TInt index1 = 1;
+	TInt index2 = 2;
+
+	TMockLtsyData1<TInt> expMockData11(index1);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RMobileSmsStore::Delete
+ 	//-------------------------------------------------------------------------
+
+	expMockData11.SerialiseL(expData);
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone, 10);
+	store1.Delete(requestStatus1, index1);
+
+	store2.Delete(requestStatus2, index2);
+
+	User::WaitForRequest(requestStatus1);        
+	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
+
+	User::WaitForRequest(requestStatus2);        
+	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
+
+	AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(8, this); // phone2, telServer2, expData, this
+	                                      // store1, messaging1, store2, messaging2
+
+	}
+
+void CCTsySmsStoreFU::AuxDelete5L(const TDesC& aName)
+	{
+	
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	//-------------------------------------------------------------------------
+
+	TInt index = 1;
+
+	TMockLtsyData1<TInt> expMockData1(index);
+	expMockData1.SerialiseL(expData);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test timeout of RMobileSmsStore::Delete
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
+
+    store.Delete(requestStatus, index);
+    
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
+
+	CleanupStack::PopAndDestroy(4, this); // expData, this, messaging, store
+
+	}
+
+void CCTsySmsStoreFU::AuxDeleteAll1L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll, KErrNotSupported);
+
+    store.DeleteAll(requestStatus);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
+
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->CTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrGeneral);
+
+    store.DeleteAll(requestStatus);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
+
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// RMobileSmsStore::DeleteAll when result is not cached.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
+	
+	store.DeleteAll(requestStatus);
+
+	User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+	
+ 	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of RMobileSmsStore::DeleteAll
+	// from LTSY.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
+
+	}
+
+void CCTsySmsStoreFU::AuxDeleteAll2L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+ 	//-------------------------------------------------------------------------
+	// Test cancelling of RMobileSmsStore::DeleteAll
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ 	
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
+	
+    store.DeleteAll(requestStatus);
+    store.CancelAsyncRequest(EMobilePhoneStoreDeleteAll);
+		
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
+
+	}
+
+void CCTsySmsStoreFU::AuxDeleteAll4L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2; 
+	ret = phone2.Open(telServer2, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+    // open the message store1
+    RMobileSmsMessaging messaging1;
+    TInt res = messaging1.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging1);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store1;
+    res = store1.Open(messaging1, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store1);
+
+    // open the message store2
+    RMobileSmsMessaging messaging2;
+    res = messaging2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging2);
+
+    RMobileSmsStore store2;
+    res = store2.Open(messaging2, KETelIccSmsStore);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store2);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RMobileSmsStore::DeleteAll
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone, 10);
+    store1.DeleteAll(requestStatus1);
+
+    store2.DeleteAll(requestStatus2);
+    
+    User::WaitForRequest(requestStatus1);        
+	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
+
+    User::WaitForRequest(requestStatus2);        
+	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
+
+    AssertMockLtsyStatusL();
+	CleanupStack::PopAndDestroy(7, this); // phone2, telServer2, this
+	                                      // store1, messaging1, store2, messaging2
+
+	}
+
+void CCTsySmsStoreFU::AuxDeleteAll5L(const TDesC& aName)
+	{
+	
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test timeout of RMobileSmsStore::DeleteAll
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+
+    store.DeleteAll(requestStatus);
+    
+    User::WaitForRequest(requestStatus);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
+
+	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
+
+	}
+
+void CCTsySmsStoreFU::AuxGetInfo1L(const TDesC& aName)
+	{
+	
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+	
+	//-------------------------------------------------------------------------
+
+	TInt maxNumLength(-1);
+	TInt maxTextLength(-1);
+	RMobilePhoneBookStore::TMobilePhoneBookLocation location(RMobilePhoneBookStore::ELocationUnknown);
+	TUint16 changeCounter(0);
+	RMobilePhoneBookStore::TMobilePhoneBookIdentity identity; 
+	RMobilePhoneBookStore::TMobilePhoneStoreType type(RMobilePhoneBookStore::EShortMessageStore);
+	TUint8 totalEntries(1);
+	TInt usedEntries(2);
+	TUint32 caps(KSmsStoreInfoCaps);
+	RMobilePhone::TMobileName name(KETelIccSmsStore);
+
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV1;
+	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV1(phoneBookInfoV1);
+
+    TMockLtsyData2<TUint8, TInt> data(totalEntries, usedEntries);
+    data.SerialiseL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo, KErrNotSupported);
+
+	store.GetInfo(requestStatus, pckgInfoV1);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNotSupported, requestStatus.Int());	
+
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->CTSY
+ 	//-------------------------------------------------------------------------
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrGeneral, completeData);
+
+	store.GetInfo(requestStatus, pckgInfoV1);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrGeneral, requestStatus.Int());	
+
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// RMobileSmsStore::GetInfo when result is not cached.
+ 	//-------------------------------------------------------------------------
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	
+	store.GetInfo(requestStatus, pckgInfoV1);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+
+	ASSERT_EQUALS(maxNumLength , phoneBookInfoV1.iMaxNumLength  );
+	ASSERT_EQUALS(maxTextLength, phoneBookInfoV1.iMaxTextLength );
+	ASSERT_EQUALS(location     , phoneBookInfoV1.iLocation      );
+	ASSERT_EQUALS(changeCounter, phoneBookInfoV1.iChangeCounter );
+	ASSERT_EQUALS(0, phoneBookInfoV1.iIdentity.Compare(identity));
+	ASSERT_EQUALS(type         , phoneBookInfoV1.iType          );
+	ASSERT_EQUALS(totalEntries , static_cast<TUint8>(phoneBookInfoV1.iTotalEntries));
+	ASSERT_EQUALS(usedEntries  , phoneBookInfoV1.iUsedEntries   );
+	ASSERT_EQUALS(caps, phoneBookInfoV1.iCaps);
+	ASSERT_EQUALS(0, phoneBookInfoV1.iName.Compare(name));
+	
+ 	//-------------------------------------------------------------------------
+	// TEST D: RMobileSmsStore::GetInfo again, this time CTSY
+	// will get result from the cache.
+ 	//-------------------------------------------------------------------------
+
+	usedEntries = 0;
+	totalEntries = 0;
+	
+	completeData.Close();
+	
+    TMockLtsyData2<TUint8, TInt> data2(totalEntries, usedEntries);
+    data2.SerialiseL(completeData);
+	
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	
+	store.GetInfo(requestStatus, pckgInfoV1);
+    
+    User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());	
+
+	ASSERT_EQUALS(maxNumLength , phoneBookInfoV1.iMaxNumLength  );
+	ASSERT_EQUALS(maxTextLength, phoneBookInfoV1.iMaxTextLength );
+	ASSERT_EQUALS(location     , phoneBookInfoV1.iLocation      );
+	ASSERT_EQUALS(changeCounter, phoneBookInfoV1.iChangeCounter );
+	ASSERT_EQUALS(0, phoneBookInfoV1.iIdentity.Compare(identity));
+	ASSERT_EQUALS(type         , phoneBookInfoV1.iType          );
+	ASSERT_EQUALS(totalEntries , static_cast<TUint8>(phoneBookInfoV1.iTotalEntries));
+	ASSERT_EQUALS(usedEntries  , phoneBookInfoV1.iUsedEntries   );
+	ASSERT_EQUALS(caps, phoneBookInfoV1.iCaps);
+	ASSERT_EQUALS(0, phoneBookInfoV1.iName.Compare(name));
+
+ 	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of RMobileSmsStore::GetInfo
+	// from LTSY.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+	
+	//-------------------------------------------------------------------------
+	// TEST F: Successful completion request of RMobileSmsStore::GetInfo
+	// with RMobilePhoneStore::TMobilePhoneStoreInfoV1
+	//-------------------------------------------------------------------------
+	
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1 storeInfoV1;
+	RMobilePhoneStore::TMobilePhoneStoreInfoV1Pckg storeInfoPckg( storeInfoV1 );
+	
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	    
+	store.GetInfo(requestStatus, storeInfoPckg);
+	User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	    
+	ASSERT_EQUALS(KErrNone, requestStatus.Int());   
+	
+	ASSERT_EQUALS(type         , storeInfoV1.iType          );
+	ASSERT_EQUALS(totalEntries , static_cast<TUint8>(storeInfoV1.iTotalEntries));
+	ASSERT_EQUALS(usedEntries  , storeInfoV1.iUsedEntries   );
+	ASSERT_EQUALS(caps, storeInfoV1.iCaps);
+	ASSERT_EQUALS(0, storeInfoV1.iName.Compare(name));
+	   
+	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
+	
+	}
+
+void CCTsySmsStoreFU::AuxGetInfo2L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	
+	TUint8 totalEntries(0);
+	TInt usedEntries(0);
+	
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV1;
+	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV1(phoneBookInfoV1);
+
+    TMockLtsyData2<TUint8, TInt> data(totalEntries, usedEntries);
+    data.SerialiseL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// Test cancelling of RMobileSmsStore::GetInfo
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+ 	
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	
+	store.GetInfo(requestStatus, pckgInfoV1);
+    store.CancelAsyncRequest(EMobilePhoneStoreGetInfo);
+		
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(4, this); // completeData, this, messaging, store
+		
+	}
+
+void CCTsySmsStoreFU::AuxGetInfo3L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	
+	TUint8 totalEntries(0);
+	TInt usedEntries(0);
+	
+    TMockLtsyData2<TUint8, TInt> data(totalEntries, usedEntries);
+    data.SerialiseL(completeData);
+
+	//-------------------------------------------------------------------------
+	// Test B: Test passing wrong descriptor size to parameter in
+	// RMobileSmsStore::GetInfo
+ 	//-------------------------------------------------------------------------
+	TBuf8<1> badParam;
+	store.GetInfo(requestStatus, badParam);
+
+	User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrArgument, requestStatus.Int());	
+	
+	CleanupStack::PopAndDestroy(4, this); // completeData, this, messaging, store
+		
+	}
+
+void CCTsySmsStoreFU::AuxGetInfo4L(const TDesC& aName)
+	{
+					
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2; 
+	ret = phone2.Open(telServer2, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    // open the message store1
+    RMobileSmsMessaging messaging1;
+    TInt res = messaging1.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging1);
+
+    RMobileSmsStore store1;
+    res = store1.Open(messaging1, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store1);
+
+    // open the message store2
+    RMobileSmsMessaging messaging2;
+    res = messaging2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging2);
+
+    RMobileSmsStore store2;
+    res = store2.Open(messaging2, KETelIccSmsStore);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store2);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+ 	//-------------------------------------------------------------------------
+	// It is common value for both function.
+
+	RMobilePhoneBookStore::TMobilePhoneBookIdentity identity; 
+	
+ 	//-------------------------------------------------------------------------
+	// param for first function
+	
+	TUint8 totalEntries1(1);
+	TInt   usedEntries1(2);
+
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV11;
+	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV11(phoneBookInfoV11);
+
+    TMockLtsyData2<TUint8, TInt> data1(totalEntries1, usedEntries1);
+
+ 	//-------------------------------------------------------------------------
+	// param for second function
+	
+	TUint8 totalEntries2(10);
+	TInt   usedEntries2(20);
+
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV12;
+	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV12(phoneBookInfoV12);
+
+    TMockLtsyData2<TUint8, TInt> data2(totalEntries2, usedEntries2);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RMobileSmsStore::GetInfo
+ 	//-------------------------------------------------------------------------
+
+	data1.SerialiseL(completeData);
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+
+    store1.GetInfo(requestStatus1, pckgInfoV11);
+
+	completeData.Close();
+	data2.SerialiseL(completeData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+
+    store2.GetInfo(requestStatus2, pckgInfoV12);
+    
+    User::WaitForRequest(requestStatus1);        
+	ASSERT_EQUALS(KErrNone, requestStatus1.Int());	
+
+    User::WaitForRequest(requestStatus2);        
+    AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int());	
+
+	CleanupStack::PopAndDestroy(8, this); // phone2, telServer2, this, completeData
+	                                      // store1, messaging1, store2, messaging2
+
+	}
+
+void CCTsySmsStoreFU::AuxGetInfo5L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	//-------------------------------------------------------------------------
+
+	RMobilePhoneBookStore::TMobilePhoneBookInfoV1 phoneBookInfoV1;
+	TPckg<RMobilePhoneBookStore::TMobilePhoneBookInfoV1> pckgInfoV1(phoneBookInfoV1);
+
+	//-------------------------------------------------------------------------
+	// Test A: Test timeout of RMobileSmsStore::GetInfo
+ 	//-------------------------------------------------------------------------
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::GetInfoL().
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+	store.GetInfo(requestStatus, pckgInfoV1);
+
+	User::WaitForRequest(requestStatus);        
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrTimedOut, requestStatus.Int());	
+
+	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
+
+	}	
+
+void CCTsySmsStoreFU::AuxStart1L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+	CFilteringActiveScheduler scheduler;
+	CActiveScheduler::Install(&scheduler);
+
+	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
+	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
+		CRetrieveMobilePhoneSmsList::NewL(store, type);
+	CleanupStack::PushL(retrieveMobilePhoneSmsList);
+	
+	CActiveRetriever::ResetRequestsNumber();
+	CActiveRetriever* activeRetriever = 
+						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
+	CleanupStack::PushL(activeRetriever);
+	scheduler.AddRetrieverL(*activeRetriever);
+
+ 	//-------------------------------------------------------------------------
+
+	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
+	CleanupStack::PushL(smsMsgArray);
+
+	TSmsMsg smsMsg;
+    smsMsg.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg.iServiceCentre = _L("ServiceSenter"); 
+    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
+    smsMsg.iLocation      = 200;
+    smsMsg.iDeleteAfterClientAck = EFalse;
+    smsMsg.iSmsClass2            = ETrue;
+	smsMsgArray->AppendL(&smsMsg, 1);
+    
+	TBool receivedClass2ToBeReSent(ETrue);
+	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
+		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
+
+ 	//-------------------------------------------------------------------------
+	// TEST E: Unsolicited completion of CRetrieveMobilePhoneSmsList::Start
+	// from LTSY.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);	
+	completeSmsMsgLtsyData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
+
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+	AssertMockLtsyStatusL();
+	
+ 	//-------------------------------------------------------------------------
+	// TEST A: failure to dispatch request to LTSY
+ 	//-------------------------------------------------------------------------
+
+	TUint8 totalEntries(1);
+	TInt usedEntries(2);
+
+	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
+	completeData.Close();
+	dataGetInfo.SerialiseL(completeData);
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNotSupported);
+
+	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
+	activeRetriever->Activate();
+
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrNotSupported, activeRetriever->iStatus.Int());
+	AssertMockLtsyStatusL();
+	
+	//-------------------------------------------------------------------------
+	// TEST B: failure on completion of pending request from LTSY->CTSY
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
+	completeData.Close();
+	completeSmsMsgLtsyData.SerialiseL(completeData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrGeneral, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+    retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
+	activeRetriever->Activate();
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrGeneral, activeRetriever->iStatus.Int());
+	AssertMockLtsyStatusL();
+	
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// CRetrieveMobilePhoneSmsList::Start when result is not cached.
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
+	iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+    retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
+	activeRetriever->Activate();
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrNone, activeRetriever->iStatus.Int());
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(3); // retrieveMobilePhoneSmsList, 
+	                                // activeRetriever, smsMsgArray
+	CActiveScheduler::Install(NULL);
+	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
+
+	}	
+
+void CCTsySmsStoreFU::AuxStart2L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	CFilteringActiveScheduler scheduler;
+	CActiveScheduler::Install(&scheduler);
+
+	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
+	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
+		CRetrieveMobilePhoneSmsList::NewL(store, type);
+	CleanupStack::PushL(retrieveMobilePhoneSmsList);
+	
+	CActiveRetriever::ResetRequestsNumber();
+	CActiveRetriever* activeRetriever = 
+						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
+	CleanupStack::PushL(activeRetriever);
+	scheduler.AddRetrieverL(*activeRetriever);
+	
+ 	//-------------------------------------------------------------------------
+
+	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
+	CleanupStack::PushL(smsMsgArray);
+
+	TSmsMsg smsMsg;
+    smsMsg.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg.iServiceCentre = _L("ServiceSenter"); 
+    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
+    smsMsg.iLocation      = 200;
+    smsMsg.iDeleteAfterClientAck = EFalse;
+    smsMsg.iSmsClass2            = ETrue;
+	smsMsgArray->AppendL(&smsMsg, 1);
+    
+	TBool receivedClass2ToBeReSent(ETrue);
+	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
+		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
+
+	//-------------------------------------------------------------------------
+	// Test cancelling of CRetrieveMobilePhoneSmsList::Start
+ 	//-------------------------------------------------------------------------
+
+	TUint8 totalEntries(1);
+	TInt usedEntries(2);
+
+	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
+	dataGetInfo.SerialiseL(completeData);
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
+	completeData.Close();
+	completeSmsMsgLtsyData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData, 10);
+
+	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
+	activeRetriever->Activate(CActiveRetriever::ECaseGeneralCancelCase);
+
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
+
+	// Wait for completion of iMockLTSY.NotifyTerminated
+	User::WaitForRequest(mockLtsyStatus);
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+	AssertMockLtsyStatusL();
+
+    iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
+    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
+	 */
+    iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+    retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
+	activeRetriever->Activate(CActiveRetriever::ECasePhase2Cancel);
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrCancel, activeRetriever->iStatus.Int());
+
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(3); // retrieveMobilePhoneSmsList, 
+	                                // activeRetriever, smsMsgArray
+	CActiveScheduler::Install(NULL);
+	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
+
+	}
+
+void CCTsySmsStoreFU::AuxStart4L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+	TRequestStatus mockLtsyStatus;
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2; 
+	ret = phone2.Open(telServer2, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    // open the message store1
+    RMobileSmsMessaging messaging1;
+    TInt res = messaging1.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging1);
+
+    RMobileSmsStore store1;
+    res = store1.Open(messaging1, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store1);
+
+    // open the message store2
+    RMobileSmsMessaging messaging2;
+    res = messaging2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging2);
+
+    RMobileSmsStore store2;
+    res = store2.Open(messaging2, KETelIccSmsStore);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store2);
+
+	CFilteringActiveScheduler scheduler;
+	CActiveScheduler::Install(&scheduler);
+
+	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
+	
+	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList1 = 
+		CRetrieveMobilePhoneSmsList::NewL(store1, type);
+	CleanupStack::PushL(retrieveMobilePhoneSmsList1);
+	
+	CActiveRetriever::ResetRequestsNumber();
+	CActiveRetriever* activeRetriever1 = 
+						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList1);
+	CleanupStack::PushL(activeRetriever1);
+	scheduler.AddRetrieverL(*activeRetriever1);
+
+	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList2 = 
+		CRetrieveMobilePhoneSmsList::NewL(store2, type);
+	CleanupStack::PushL(retrieveMobilePhoneSmsList2);
+	
+	CActiveRetriever::ResetRequestsNumber();
+	CActiveRetriever* activeRetriever2 = 
+						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList2);
+	CleanupStack::PushL(activeRetriever2);
+	scheduler.AddRetrieverL(*activeRetriever2);
+	
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting CRetrieveMobilePhoneSmsList::Start
+ 	//-------------------------------------------------------------------------
+
+	TUint8 totalEntries(1);
+	TInt usedEntries(2);
+
+	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
+	dataGetInfo.SerialiseL(completeData);
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
+
+ 	//-------------------------------------------------------------------------
+
+	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
+	CleanupStack::PushL(smsMsgArray);
+
+	TSmsMsg smsMsg;
+    smsMsg.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg.iServiceCentre = _L("ServiceSenter"); 
+    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
+    smsMsg.iLocation      = 200;
+    smsMsg.iDeleteAfterClientAck = EFalse;
+    smsMsg.iSmsClass2            = ETrue;
+	smsMsgArray->AppendL(&smsMsg, 1);
+    
+	TBool receivedClass2ToBeReSent(ETrue);
+	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
+		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
+	
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
+	completeData.Close();
+	completeSmsMsgLtsyData.SerialiseL(completeData);
+    iMockLTSY.CompleteL(EMobilePhoneStoreReadAllPhase1, KErrNone, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
+	 */
+    iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	retrieveMobilePhoneSmsList1->Start(activeRetriever1->Status());
+	activeRetriever1->Activate();
+
+	retrieveMobilePhoneSmsList2->Start(activeRetriever2->Status());
+	activeRetriever2->Activate();
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrNone, activeRetriever1->iStatus.Int());
+	ASSERT_EQUALS(KErrServerBusy, activeRetriever2->iStatus.Int());
+
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(5); // retrieveMobilePhoneSmsList1, 
+									// retrieveMobilePhoneSmsList2,
+									// activeRetriever1,
+									// activeRetriever2, smsMsgArray
+	CActiveScheduler::Install(NULL);
+	CleanupStack::PopAndDestroy(8, this); // phone2, telServer2, this
+	                                      // store1, messaging1, store2, messaging2, completeData
+	
+	}
+
+void CCTsySmsStoreFU::AuxStart5L(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+	TRequestStatus mockLtsyStatus;
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	CFilteringActiveScheduler scheduler;
+	CActiveScheduler::Install(&scheduler);
+
+	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
+	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
+		CRetrieveMobilePhoneSmsList::NewL(store, type);
+	CleanupStack::PushL(retrieveMobilePhoneSmsList);
+	
+	CActiveRetriever::ResetRequestsNumber();
+	CActiveRetriever* activeRetriever = 
+						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
+	CleanupStack::PushL(activeRetriever);
+	scheduler.AddRetrieverL(*activeRetriever);
+	
+	//-------------------------------------------------------------------------
+	// Test A: Test timeout of CRetrieveMobilePhoneSmsList::Start
+ 	//-------------------------------------------------------------------------
+
+	TUint8 totalEntries(1);
+	TInt usedEntries(2);
+
+	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
+	dataGetInfo.SerialiseL(completeData);
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
+
+ 	//-------------------------------------------------------------------------
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreReadAllPhase1, KErrNone);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteReadAllSmsPhase1().
+	 */
+    iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	ASSERT_TRUE(EFalse);
+
+	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
+	activeRetriever->Activate();
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrTimedOut, activeRetriever->iStatus.Int());
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(2); // retrieveMobilePhoneSmsList, 
+	                                // activeRetriever,
+	CActiveScheduler::Install(NULL);
+	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
+	
+	}
+
+void CCTsySmsStoreFU::AuxNotifyStoreEvent1L(const TDesC& aName)
+	{
+	
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus requestStatus2;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+	
+	RBuf8 expData;
+	CleanupClosePushL(expData);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+	
+ 	//-------------------------------------------------------------------------
+	
+	TInt index (0);
+	TUint32 storeEvent(0);
+
+	RMobileSmsStore::TMobileGsmSmsEntryV1 entryV1;
+	TPckg<RMobileSmsStore::TMobileGsmSmsEntryV1> pckgEntryV1(entryV1);
+	
+	entryV1.iServiceCentre.iNumberPlan   = RMobilePhone::ENationalNumberPlan;
+	entryV1.iServiceCentre.iTypeOfNumber = RMobilePhone::EAlphanumericNumber;
+	entryV1.iServiceCentre.iTelNumber    = _L("TelNumber1");
+	entryV1.iMsgData = _L8("Hello, World!");
+	entryV1.iMsgStatus = RMobileSmsStore::EStoredMessageUnsent;
+	entryV1.iIndex = index;
+	
+	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
+		expMockData2(entryV1, entryV1.iIndex);
+
+    TUint8 location = 255;
+	TBool  receivedClass2ToBeResent = ETrue;
+
+	TMockLtsyData2<TUint8, TBool> completeMockData2(location, receivedClass2ToBeResent);
+	
+ 	//-------------------------------------------------------------------------
+	// TEST C: Successful completion request of
+	// RMobileSmsStore::NotifyStoreEvent when result is not cached.
+ 	//-------------------------------------------------------------------------
+
+	//-------------------------------------------------------------------------
+	// Complete for Delete with RMobilePhoneStore::KStoreEntryDeleted
+ 	//-------------------------------------------------------------------------
+
+	TMockLtsyData1<TInt> expMockData1(index);
+	
+	expMockData1.SerialiseL(expData);
+	
+	store.NotifyStoreEvent(requestStatus, storeEvent, index);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
+	
+	store.Delete(requestStatus2, index);
+
+	User::WaitForRequest(requestStatus2);        
+	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
+	
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
+    
+    TUint32 event = RMobilePhoneStore::KStoreEntryDeleted;
+    ASSERT_EQUALS(event, storeEvent);	
+    ASSERT_EQUALS(0    , index     );	
+	
+	//-------------------------------------------------------------------------
+	// Complete for Write with RMobilePhoneStore::KStoreEntryAdded
+ 	//-------------------------------------------------------------------------
+	
+    index = 0;
+	store.NotifyStoreEvent(requestStatus, storeEvent, index);
+
+	expData.Close();
+	expMockData2.SerialiseL(expData);	
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+
+	completeMockData2.SerialiseL(completeData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrNone, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	store.Write(requestStatus2, pckgEntryV1); 
+	
+	User::WaitForRequest(requestStatus2);
+    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+	
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
+    
+    event = RMobilePhoneStore::KStoreEntryAdded | RMobilePhoneStore::KStoreFull;
+    ASSERT_EQUALS(event                      , storeEvent);	
+    ASSERT_EQUALS(static_cast<TInt>(location), index     );	
+	
+	//-------------------------------------------------------------------------
+	// Complete for Write with RMobilePhoneStore::KStoreFull
+ 	//-------------------------------------------------------------------------
+
+    index = 0;
+	entryV1.iIndex = index;
+	TMockLtsyData2<RMobileSmsStore::TMobileGsmSmsEntryV1, TInt> 
+		expMockData2b(entryV1, entryV1.iIndex);
+
+	expData.Close();
+	expMockData2b.SerialiseL(expData);
+
+	store.NotifyStoreEvent(requestStatus, storeEvent, index);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreWrite, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreWrite, KErrDiskFull, completeData);
+
+	/* 
+	 * Method HandleRequestL() with EMobileSmsMessagingResumeSmsReception IPC
+	 * is called from CMmSmsStorageTsy::CompleteWriteSms().
+	 */
+	iMockLTSY.ExpectL(EMobileSmsMessagingResumeSmsReception);
+
+	store.Write(requestStatus2, pckgEntryV1); 
+	
+	User::WaitForRequest(requestStatus2);
+    ASSERT_EQUALS(KErrDiskFull, requestStatus2.Int());
+	
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
+    
+    event = RMobilePhoneStore::KStoreFull;
+    ASSERT_EQUALS(event, storeEvent);	
+    ASSERT_EQUALS(-1   , index     );	
+
+	//-------------------------------------------------------------------------
+	// Complete for DeleteAllSns with RMobilePhoneStore::KStoreEmpty
+ 	//-------------------------------------------------------------------------
+
+	store.NotifyStoreEvent(requestStatus, storeEvent, index);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
+	
+	store.DeleteAll(requestStatus2);
+
+	User::WaitForRequest(requestStatus2);        
+	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
+	
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
+    
+    event = RMobilePhoneStore::KStoreEmpty;
+    ASSERT_EQUALS(event, storeEvent);	
+    ASSERT_EQUALS(-1   , index     );	
+
+    //-------------------------------------------------------------------------
+	// for coverage increasing
+ 	//-------------------------------------------------------------------------
+
+	TUint8 totalEntries(1);
+	TInt usedEntries(1);
+
+	TMockLtsyData2<TUint8, TInt> dataGetInfo(totalEntries, usedEntries);
+	completeData.Close();
+	dataGetInfo.SerialiseL(completeData);
+
+	TRequestStatus mockLtsyStatus;
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobilePhoneStoreGetInfo, KErrNone, completeData);
+	User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());	
+
+	expData.Close();
+	expMockData1.SerialiseL(expData);
+	
+	store.NotifyStoreEvent(requestStatus, storeEvent, index);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDelete, expData);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDelete, KErrNone);
+	
+	store.Delete(requestStatus2, index);
+
+	User::WaitForRequest(requestStatus2);        
+	ASSERT_EQUALS(KErrNone, requestStatus2.Int());	
+	
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus.Int());    
+    
+    event = RMobilePhoneStore::KStoreEntryDeleted | RMobilePhoneStore::KStoreEmpty;
+    ASSERT_EQUALS(event, storeEvent);	
+    ASSERT_EQUALS(-1    , index     );	
+
+    //-------------------------------------------------------------------------
+	// for coverage increasing
+	//-------------------------------------------------------------------------
+
+    TBool smsInd( EFalse );
+
+    TSmsMsg smsMsg;
+	smsMsg.iSmsMsg = _L8("Hello, World!"); 
+	smsMsg.iServiceCentre = _L("ServiceSenter1"); 
+	smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+	smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+	smsMsg.iMessageStatus = KSimSmsMtRead; 
+	smsMsg.iLocation      = 200;
+	smsMsg.iDeleteAfterClientAck = EFalse;
+	smsMsg.iSmsClass2            = ETrue;
+    TSmsMsg* smsMsgPtr(&smsMsg);
+
+    TMockLtsyData2<TBool, TSmsMsg*> compTsyData(smsInd, smsMsgPtr);
+	completeData.Close();
+	compTsyData.SerialiseL(completeData);
+
+	iMockLTSY.NotifyTerminated(mockLtsyStatus);
+	iMockLTSY.CompleteL(EMobileSmsMessagingReceiveMessage, KErrNone, completeData);
+	
+    TDesC8* msgPtr = NULL;
+    TInt rpCause(KErrGsmSMSUnspecifiedProtocolError);
+    TMockLtsyData2<TDesC8*, TInt> expTsyData(msgPtr, rpCause);
+
+    expData.Close();
+    expTsyData.SerialiseL(expData);
+    iMockLTSY.ExpectL(EMobileSmsMessagingNackSmsStored, expData);
+
+    User::WaitForRequest(mockLtsyStatus);
+	AssertMockLtsyStatusL();
+	ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int());
+
+	CleanupStack::PopAndDestroy(5, this); // expData, completeData, this, messaging, store
+
+	}
+
+void CCTsySmsStoreFU::AuxNotifyStoreEvent2L(const TDesC& aName)
+	{
+	
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus requestStatus2;
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+ 	//-------------------------------------------------------------------------
+
+	TInt index (0);
+	TUint32 storeEvent(0);
+	
+ 	//-------------------------------------------------------------------------
+	// Test cancelling of RMobileSmsStore::NotifyStoreEvent
+ 	//-------------------------------------------------------------------------
+
+	store.NotifyStoreEvent(requestStatus, storeEvent, index);
+	store.CancelAsyncRequest(EMobilePhoneStoreNotifyStoreEvent);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
+	
+	store.DeleteAll(requestStatus2);
+
+	User::WaitForRequest(requestStatus2);
+    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+    
+    User::WaitForRequest(requestStatus);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrCancel, requestStatus.Int());
+
+	CleanupStack::PopAndDestroy(3, this); // this, messaging, store
+	}
+
+void CCTsySmsStoreFU::AuxNotifyStoreEvent4L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus1;
+	TRequestStatus requestStatus2;
+	TRequestStatus requestStatus11;
+	TRequestStatus requestStatus21;
+	
+	// Open second client
+	RTelServer telServer2;
+	TInt ret = telServer2.Connect();
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(telServer2);
+
+	RMobilePhone phone2; 
+	ret = phone2.Open(telServer2, KMmTsyPhoneName);
+	ASSERT_EQUALS(KErrNone, ret);
+	CleanupClosePushL(phone2);
+
+    // open the message store1
+    RMobileSmsMessaging messaging1;
+    TInt res = messaging1.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging1);
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    RMobileSmsStore store1;
+    res = store1.Open(messaging1, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store1);
+
+    // open the message store2
+    RMobileSmsMessaging messaging2;
+    res = messaging2.Open(phone2);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging2);
+
+    RMobileSmsStore store2;
+    res = store2.Open(messaging2, KETelIccSmsStore);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store2);
+
+ 	//-------------------------------------------------------------------------
+
+	TInt index1 (0);
+	TInt index2 (0);
+	TUint32 storeEvent1(0);
+	TUint32 storeEvent2(0);
+	
+	//-------------------------------------------------------------------------
+	// Test A: Test multiple clients requesting RMobileSmsStore::NotifyStoreEvent
+ 	//-------------------------------------------------------------------------
+
+	store1.NotifyStoreEvent(requestStatus1, storeEvent1, index1);
+	store2.NotifyStoreEvent(requestStatus2, storeEvent2, index2);
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
+	
+	store1.DeleteAll(requestStatus11);
+
+    User::WaitForRequest(requestStatus11);
+	AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus11.Int());
+
+	iMockLTSY.ExpectL(EMobilePhoneStoreDeleteAll);
+	iMockLTSY.CompleteL(EMobilePhoneStoreDeleteAll, KErrNone);
+	
+	store1.DeleteAll(requestStatus21);
+
+    User::WaitForRequest(requestStatus21);
+    ASSERT_EQUALS(KErrNone, requestStatus21.Int());
+    
+    User::WaitForRequest(requestStatus1);
+    ASSERT_EQUALS(KErrNone, requestStatus1.Int());
+
+    User::WaitForRequest(requestStatus2);
+    AssertMockLtsyStatusL();
+    ASSERT_EQUALS(KErrNone, requestStatus2.Int());
+
+    TUint32 event = RMobilePhoneStore::KStoreEmpty;
+
+    ASSERT_EQUALS(event, storeEvent1);
+    ASSERT_EQUALS(-1   , index1     );
+
+    ASSERT_EQUALS(event, storeEvent2);
+    ASSERT_EQUALS(-1   , index2     );
+    
+	CleanupStack::PopAndDestroy(7, this); // phone2, telServer2, this,
+	                                      // store1, messaging1, store2, messaging2
+	
+	}
+
+void CCTsySmsStoreFU::AuxStart1bL(const TDesC& aName)
+	{
+
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	TRequestStatus requestStatus;
+    TRequestStatus mockLtsyStatus;
+
+	/*
+	 * HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	 * when RMobileSmsStore's object is opened.
+	 */
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+    // open the message store
+    RMobileSmsMessaging messaging;
+    TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+    RMobileSmsStore store;
+    res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	RBuf8 completeData;
+	CleanupClosePushL(completeData);
+
+	CFilteringActiveScheduler scheduler;
+	CActiveScheduler::Install(&scheduler);
+
+	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
+	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = 
+		CRetrieveMobilePhoneSmsList::NewL(store, type);
+	CleanupStack::PushL(retrieveMobilePhoneSmsList);
+	
+	CActiveRetriever::ResetRequestsNumber();
+	CActiveRetriever* activeRetriever = 
+						CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
+	CleanupStack::PushL(activeRetriever);
+	scheduler.AddRetrieverL(*activeRetriever);
+
+ 	//-------------------------------------------------------------------------
+
+	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
+	CleanupStack::PushL(smsMsgArray);
+
+	TSmsMsg smsMsg;
+    smsMsg.iSmsMsg = _L8("Hello, World!"); 
+    smsMsg.iServiceCentre = _L("ServiceSenter"); 
+    smsMsg.iMobileScTON   = RMobilePhone::ENetworkSpecificNumber;  
+    smsMsg.iMobileScNPI   = RMobilePhone::EServiceCentreSpecificPlan2;
+    smsMsg.iMessageStatus = KSimSmsMtRead; // RMobileSmsStore::EStoredMessageRead
+    smsMsg.iLocation      = 200;
+    smsMsg.iDeleteAfterClientAck = EFalse;
+    smsMsg.iSmsClass2            = ETrue;
+	smsMsgArray->AppendL(&smsMsg, 1);
+    
+	TBool receivedClass2ToBeReSent(ETrue);
+	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
+		completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
+
+ 	//-------------------------------------------------------------------------
+	// TEST C: Failure of CRetrieveMobilePhoneSmsList::Start when result 
+	// is not cached (or ready).
+ 	//-------------------------------------------------------------------------
+
+	retrieveMobilePhoneSmsList->Start(activeRetriever->Status());
+	activeRetriever->Activate();
+	scheduler.StartScheduler();
+
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	// Since the cache is not ready, NO SMS is found.
+	ASSERT_EQUALS(KErrNotFound, activeRetriever->iStatus.Int());
+	AssertMockLtsyStatusL();
+	
+	CleanupStack::PopAndDestroy(3); // retrieveMobilePhoneSmsList, 
+	                                // activeRetriever, smsMsgArray
+	CActiveScheduler::Install(NULL);
+	CleanupStack::PopAndDestroy(4, this); // this, messaging, store, completeData
+
+	}	
+
+void CCTsySmsStoreFU::AuxStartBatch1L(const TDesC& aName)
+	{
+	OpenEtelServerL(EUseExtendedError);
+	CleanupStack::PushL(TCleanupItem(Cleanup,this));
+	OpenPhoneL();
+
+	// HandleRequestL() with EMobilePhoneStoreGetInfo IPC is called from CMmSmsStorageTsy::Init() 
+	// when RMobileSmsStore's object is opened.
+	iMockLTSY.ExpectL(EMobilePhoneStoreGetInfo);
+
+	// open the message store
+	RMobileSmsMessaging messaging;
+	TInt res = messaging.Open(iPhone);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(messaging);
+
+	RMobileSmsStore store;
+	res = store.Open(messaging, aName);
+	ASSERT_EQUALS(KErrNone, res);
+	CleanupClosePushL(store);
+
+	CArrayPtrFlat<TSmsMsg>* smsMsgArray = new ( ELeave ) CArrayPtrFlat<TSmsMsg>( 1 );
+	CleanupStack::PushL(smsMsgArray);
+
+	TSmsMsg smsMsg;
+	smsMsgArray->AppendL(&smsMsg, 1);
+		    
+	TBool receivedClass2ToBeReSent(ETrue);
+	TMockLtsyData2<CArrayPtrFlat< TSmsMsg >*, TBool> 
+			completeSmsMsgLtsyData(smsMsgArray, receivedClass2ToBeReSent);
+	
+	CFilteringActiveScheduler scheduler;
+	CActiveScheduler::Install(&scheduler);
+	
+	RMobileSmsStore::TMobileSmsEntryExtensionId type = RMobileSmsStore::KETelMobileGsmSmsEntryV1;
+	
+	CRetrieveMobilePhoneSmsList* retrieveMobilePhoneSmsList = CRetrieveMobilePhoneSmsList::NewL(store, type);
+	CleanupStack::PushL(retrieveMobilePhoneSmsList);
+	
+	CActiveRetriever::ResetRequestsNumber();
+	CActiveRetriever* activeRetriever = CActiveRetriever::NewL(*retrieveMobilePhoneSmsList);
+	CleanupStack::PushL(activeRetriever);
+		
+	scheduler.AddRetrieverL(*activeRetriever);
+	
+	TRequestStatus requestStatus;
+	retrieveMobilePhoneSmsList->StartBatch(activeRetriever->Status(),1,1);
+	
+	activeRetriever->Activate();
+	scheduler.StartScheduler();
+	
+	ASSERT_EQUALS(0, CActiveRetriever::ResetRequestsNumber());
+	ASSERT_EQUALS(KErrNotSupported, activeRetriever->iStatus.Int());
+	AssertMockLtsyStatusL();
+		
+	CleanupStack::PopAndDestroy(6, this); // this, messaging, store, smsMsgArray, retrieveMobilePhoneSmsList, activeRetriever
+		
+	}