mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muspropertymonitor.cpp
changeset 22 496ad160a278
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muspropertymonitor.cpp	Fri Jun 11 13:36:18 2010 +0300
@@ -0,0 +1,254 @@
+/*
+* Copyright (c) 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:
+*
+*/
+
+
+//  INTERNAL INCLUDES
+#include "etelmm.h"
+#include "e32property.h"
+#include "ut_muspropertymonitor.h"
+#include "muspropertymonitor.h"
+#include "mussesseioninformationapi.h"
+
+
+//  SYSTEM INCLUDES
+#include <digia/eunit/eunitmacros.h>
+
+_LIT(KTelNo,"1234");
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusPropertyMonitor* UT_CMusPropertyMonitor::NewL()
+    {
+    UT_CMusPropertyMonitor* self = UT_CMusPropertyMonitor::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusPropertyMonitor* UT_CMusPropertyMonitor::NewLC()
+    {
+    UT_CMusPropertyMonitor* self = new( ELeave ) UT_CMusPropertyMonitor();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+UT_CMusPropertyMonitor::~UT_CMusPropertyMonitor()
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// Default constructor
+// -----------------------------------------------------------------------------
+//
+UT_CMusPropertyMonitor::UT_CMusPropertyMonitor()
+    {
+    // NOP
+    }
+
+
+// -----------------------------------------------------------------------------
+// Second phase construct
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::ConstructL()
+    {
+    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+    // It generates the test case table.
+    CEUnitTestSuiteClass::ConstructL();
+    }
+    
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::SetupL()
+    {        
+    iMusPropertyMonitor = CMusPropertyMonitor::NewL(*this);
+    iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ENoCall;
+    iMusCallStateObserverInovked = EFalse;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::Teardown()
+    {
+    delete iMusPropertyMonitor;    
+    PropertyHelper::Close();
+    }
+
+
+// TEST CASES
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_RunLL()
+    {
+    EUNIT_ASSERT( iMusPropertyMonitor);   
+    EUNIT_ASSERT( !iMusCallStateObserverInovked );
+    iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ENoCall;
+    iMusPropertyMonitor->Cancel();
+    iMusPropertyMonitor->RunL();
+    EUNIT_ASSERT( iMusCallStateObserverInovked );   
+    }
+
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_DoCancelL()
+    {
+    EUNIT_ASSERT( iMusPropertyMonitor );
+    iMusPropertyMonitor->DoCancel();
+    EUNIT_ASSERT( PropertyHelper::GetCalledFunction() == 
+                                        RProperty::ECancel )
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_RunErrorL()
+    {
+    EUNIT_ASSERT( !iMusCallStateObserverInovked );
+    EUNIT_ASSERT( iMusPropertyMonitor );
+    TInt CallState;
+    TInt error = KErrNotFound;
+
+    // Call is Established:
+    User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid,
+                             NMusSessionInformationApi::KMusCallEvent,
+                             NMusSessionInformationApi::ECallConnected ) );
+
+    // Test1: Invoking Error Situation, Ensure Calll is disconected.
+    User::LeaveIfError( iMusPropertyMonitor->RunError(error));
+    User::LeaveIfError( RProperty::Get( NMusSessionInformationApi::KCategoryUid,
+                             NMusSessionInformationApi::KMusCallEvent,
+                             CallState ) );
+    EUNIT_ASSERT( CallState == NMusSessionInformationApi::ENoCall );
+    EUNIT_ASSERT( iMusCallStateObserverInovked );
+    }
+
+
+// -----------------------------------------------------------------------------
+// UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_IsCallConnected()
+// Checks from the P/S keys if the Call is connected.
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_IsCallConnected()
+    {
+    // Test1: Call Not Connected:
+    TBool callConnected = EFalse;
+    User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid,
+                             NMusSessionInformationApi::KMusCallEvent,
+                             NMusSessionInformationApi::ENoCall ) );
+    
+    callConnected = iMusPropertyMonitor->IsCallConnected();
+    EUNIT_ASSERT( callConnected == EFalse );
+    
+    // Test2: Call Connected:
+    User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid,
+                             NMusSessionInformationApi::KMusCallEvent,
+                             NMusSessionInformationApi::ECallConnected ) );
+
+    callConnected = iMusPropertyMonitor->IsCallConnected();
+    EUNIT_ASSERT( callConnected == ETrue );
+    
+    
+    // Test3: Hold and Conference are concidered as call connected
+    User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid,
+                             NMusSessionInformationApi::KMusCallEvent,
+                             NMusSessionInformationApi::ECallHold ) );
+
+    callConnected = iMusPropertyMonitor->IsCallConnected();
+    EUNIT_ASSERT( callConnected == ETrue );
+    }
+
+
+// -----------------------------------------------------------------------------
+//  MusCallStateChanged from the MusCallStateObserver 
+// -----------------------------------------------------------------------------
+//
+void UT_CMusPropertyMonitor::MusCallStateChanged()
+    {
+    iMusCallStateObserverInovked = ETrue;
+    }
+
+
+
+//  TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+    UT_CMusPropertyMonitor,
+    "UT_CMusPropertyMonitor",
+    "UNIT" )
+
+EUNIT_TEST(
+    "RunL - test",
+    "CMusCallStatusMonitor",
+    "RunL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusPropertyMonitor_RunLL, Teardown)
+
+EUNIT_TEST(
+    "DoCancel - test",
+    "CMusCallStatusMonitor",
+    "DoCancel",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusPropertyMonitor_DoCancelL, Teardown)
+
+EUNIT_TEST(
+    "RunError - test",
+    "CMusCallStatusMonitor",
+    "RunErrorL",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusPropertyMonitor_RunErrorL, Teardown)
+
+EUNIT_TEST(
+    "IsCallConnected - test",
+    "CMusCallStatusMonitor",
+    "IsCallConnected",
+    "FUNCTIONALITY",
+    SetupL, UT_CMusPropertyMonitor_IsCallConnected, Teardown)
+    
+EUNIT_END_TEST_TABLE
+
+//  END OF FILE
+
+