diff -r 000000000000 -r 8e480a14352b messagingfw/msgtestfw/TestActions/Pigeon/src/CMtfTestActionCheckIfMessageScheduleDateExpired.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgtestfw/TestActions/Pigeon/src/CMtfTestActionCheckIfMessageScheduleDateExpired.cpp Mon Jan 18 20:36:02 2010 +0200 @@ -0,0 +1,129 @@ +// Copyright (c) 2004-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: +// __ACTION_INFO_BEGIN__ +// [Action Name] +// CheckIfMessageScheduleDateExpired +// [Action Parameters] +// CMsvSession Session : Reference to the session. +// TMsvId MessageId : Value of the Message id. +// [Action Description] +// Checks if the schedule time of the message has expired. If not, the Test Action +// fails. +// [APIs Used] +// TMsvEntry::iDate +// TMsvEntry::Id +// CMsvEntry::EntryL +// CMsvSession::GetEntryL +// __ACTION_INFO_END__ +// +// + +// System Includes +#include + +// User Includes +#include "CMtfTestActionCheckIfMessageScheduleDateExpired.h" +#include "CMtfTestCase.h" +#include "CMtfTestActionParameters.h" + + +/** + Function : NewL + Description : Constructs a new CMtfTestActionCheckIfMessageScheduleDateExpired object + @internalTechnology + @param : aTestCase :Reference to the Test case + @param : aActionParams :Test Action parameters + @return : CMtfTestAction* :a base class pointer to the newly created object + @pre none + @post: none +*/ +CMtfTestAction* CMtfTestActionCheckIfMessageScheduleDateExpired::NewL(CMtfTestCase& aTestCase,CMtfTestActionParameters* aActionParameters) + { + CMtfTestActionCheckIfMessageScheduleDateExpired* self = new (ELeave) CMtfTestActionCheckIfMessageScheduleDateExpired(aTestCase); + CleanupStack::PushL(self); + self->ConstructL(aActionParameters); + CleanupStack::Pop(self); + return self; + } + + +/** + Function : CMtfTestActionCheckIfMessageScheduleDateExpired + Description : Constructor + @internalTechnology + @param : aTestCase - CMtfTestCase for the CMtfTestAction base class + @pre none + @post: none +*/ +CMtfTestActionCheckIfMessageScheduleDateExpired::CMtfTestActionCheckIfMessageScheduleDateExpired(CMtfTestCase& aTestCase) + : CMtfSynchronousTestAction(aTestCase) + { + } + + +/** + Function : ExecuteActionL + Description : Checks if the schedule time of the message has expired. If not, + fails the Test Action. + @internalTechnology + @param : none + @return : void + @pre : none + @post none +*/ +void CMtfTestActionCheckIfMessageScheduleDateExpired::ExecuteActionL() + { + if((TestCase().TestStepResult())== EPass) + { + TestCase().Logger().Write(_L("CMtfTestActionCheckIfMessageScheduleDateExpired::ExecuteActionL IN")); + + // Obtain Input parameters + CMsvSession* paramSession = ObtainParameterReferenceL(TestCase(), + ActionParameters().Parameter(0)); + + TMsvId paramMsgId = ObtainValueParameterL(TestCase(), + ActionParameters().Parameter(1)); + + // Create a message entry + CMsvEntry* entry = paramSession->GetEntryL(paramMsgId); + CleanupStack::PushL(entry); + TMsvEntry msgEntry = entry->Entry(); + + // Get the message scheduled time + TTime date ; + date = msgEntry.iDate; + + // Get the current time + TTime currentTime; + currentTime.HomeTime(); + + // Compre the message schedule time with the current time + if(date >= currentTime) + { + // Message schedule time not expired + TestCase().ERR_PRINTF1(_L("Message schedule time has not expired.")); + TestCase().SetTestStepResult(EFail); + } + else + { + TestCase().INFO_PRINTF1(_L("Message schedule time has expired.")); + } + + CleanupStack::PopAndDestroy(entry); + + TestCase().Logger().Write(_L("CMtfTestActionCheckIfMessageScheduleDateExpired::ExecuteActionL OUT")); + } + + TestCase().ActionCompletedL(*this); + }