adaptationlayer/tsy/simatktsy_dll/internal/test/simatktsy_testtool/simatk/src/commandsendussd.cpp
changeset 0 63b37f68c1ce
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/adaptationlayer/tsy/simatktsy_dll/internal/test/simatktsy_testtool/simatk/src/commandsendussd.cpp	Fri Nov 06 17:28:23 2009 +0000
@@ -0,0 +1,166 @@
+/*
+* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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:   SendUssd specific test class. Inherits CCommandBase.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <stifparser.h>
+#include "commandsendussd.h"
+
+
+// -----------------------------------------------------------------------------
+// CCommandSendUssd::CommandSendUssd
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CCommandSendUssd::CCommandSendUssd
+        (
+        const TSatIpc       aIpc,
+        const RSat&         aSat,
+        CStifItemParser&    aParser,
+        CStifLogger&        aLog
+        ) : CSatCommandBase ( aIpc, aSat, aParser, aLog, RSat::ESendUssd ),
+        iDataPckg( iData ),
+        iRspPckg( iRsp )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CCommandSendUssd::~CCommandSendUssd
+// Destructor
+// -----------------------------------------------------------------------------
+//
+CCommandSendUssd::~CCommandSendUssd()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CCommandSendUssd::NotifySat
+// Send a notify request to Etel and clear internal data
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------       
+//
+TInt CCommandSendUssd::NotifySat
+        (
+        TRequestStatus& aSimAtkStatus
+        )
+    {
+    TInt ret ( KErrNone );
+    
+    // Clear the package
+    Init( iData );
+    Init( iRsp );
+
+    iSat.NotifySendUssdPCmd( aSimAtkStatus, iDataPckg );
+    
+    return ret;
+    }
+
+// -----------------------------------------------------------------------------
+// CCommandSendUssd::CheckData
+// Verifies the validity of received command
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------       
+//
+TInt CCommandSendUssd::CheckData()
+    {
+    iLog.Log( _L( "CCommandSendUssd::CheckData" ) );    
+    
+    TInt ret( KErrNone );
+        
+    // UssdString
+    RSat::TUssdString scriptedUssd;
+    if ( KErrNone == GetUssdString( scriptedUssd ) )
+        {
+        // String
+        if ( scriptedUssd.iUssdString != iData.iUssdString.iUssdString )
+            {
+            iLog.Log( _L( "CCommandSendUssd::CheckData: ERROR \
+                UssdString mismatch!" ) );
+            ret = KErrCorrupt;
+            }
+        
+        // DCS
+        if ( scriptedUssd.iDcs != iData.iUssdString.iDcs )
+            {
+            iLog.Log( _L( "CCommandSendUssd::CheckData: ERROR \
+                UssdString DCS mismatch!" ) );
+            ret = KErrCorrupt;
+            }
+        }
+    else
+        {
+        iLog.Log( _L( "CCommandSendUssd::CheckData: ERROR \
+            Mandatory parameter UssdString missing" ) );
+        ret = KErrArgument;
+        }
+    
+    // AlphaId
+    if ( KErrCorrupt == CheckAlphaId( iData.iAlphaId ) )
+        {
+        ret = KErrCorrupt;
+        }
+
+    // Icon
+    if ( KErrNone != CheckIcon( iData.iIconId ) )
+        {
+        ret = KErrCorrupt;
+        }
+
+    return ret;
+    }
+ 
+// -----------------------------------------------------------------------------
+// CCommandSendUssd::SendResponse
+// Creates terminal response according to scripted parameters
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------       
+//
+TInt CCommandSendUssd::SendResponse()
+    {
+    iLog.Log( _L( "CCommandSendUssd::SendResponse" ) );    
+    
+    TInt ret( KErrNone );
+
+    // General results
+    TBool isSuccess( SetGeneralResult( iRsp.iGeneralResult ) );
+    SetGeneralResult( iRsp.iGeneralResult2, KSecond );
+    
+    // Additional infos & types
+    SetAdditionalInfo( iRsp.iInfoType, iRsp.iAdditionalInfo );
+    SetAdditionalInfo( iRsp.iInfoType2, iRsp.iAdditionalInfo2, KSecond );
+    
+    // Get requested action from CallControl via MControllable interface if
+    // available
+    iRsp.iCcRequestedAction = RequestedAction();
+    
+    // USSD String required if succees and not modified by call control
+    if ( isSuccess && iRsp.iGeneralResult != RSat::KModifiedByCallControl )
+        {
+        ret = GetUssdString( iRsp.iUssdString );
+        }
+    
+    if ( KErrNone == ret )
+        {
+        ret = CSatCommandBase::SendResponse( iRspPckg );
+        }
+
+    return ret;
+    }
+
+// End of File