mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muspropertymonitor.cpp
branchRCL_3
changeset 22 73a1feb507fb
parent 21 33a5d2bbf6fc
child 23 bc78a40cd63c
--- a/mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muspropertymonitor.cpp	Thu Aug 19 09:51:39 2010 +0300
+++ b/mmshplugins/mmshaoplugin/tsrc/ut_aoplugin/src/ut_muspropertymonitor.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -92,8 +92,9 @@
 //
 void UT_CMusPropertyMonitor::SetupL()
     {        
-    iMusPropertyMonitor = CMusPropertyMonitor::NewL();
+    iMusPropertyMonitor = CMusPropertyMonitor::NewL(*this);
     iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ENoCall;
+    iMusCallStateObserverInovked = EFalse;
     }
 
 
@@ -108,10 +109,6 @@
     }
 
 
-
-
-
-
 // TEST CASES
 
 // -----------------------------------------------------------------------------
@@ -121,43 +118,11 @@
 void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_RunLL()
     {
     EUNIT_ASSERT( iMusPropertyMonitor);   
-    EUNIT_ASSERT( !iMusPropertyMonitor->iManager );   
-    
+    EUNIT_ASSERT( !iMusCallStateObserverInovked );
     iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ENoCall;
     iMusPropertyMonitor->Cancel();
     iMusPropertyMonitor->RunL();
-    EUNIT_ASSERT( !iMusPropertyMonitor->iManager );   
-
-    iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ECallConnected;
-    iMusPropertyMonitor->Cancel();
-    iMusPropertyMonitor->RunL();
-    EUNIT_ASSERT( iMusPropertyMonitor->iManager );
-    
-    iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::EConferenceTerminated;
-    iMusPropertyMonitor->Cancel();
-    iMusPropertyMonitor->RunL();
-    EUNIT_ASSERT( iMusPropertyMonitor->iManager );
-    
-    iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ECallHold;
-    iMusPropertyMonitor->Cancel();
-    iMusPropertyMonitor->RunL();
-    EUNIT_ASSERT( iMusPropertyMonitor->iManager );
-    
-    iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::EConferenceCall;
-    iMusPropertyMonitor->Cancel();
-    iMusPropertyMonitor->RunL();
-    EUNIT_ASSERT( iMusPropertyMonitor->iManager );
-    
-    iMusPropertyMonitor->iPropertyEvent.iPValue = NMusSessionInformationApi::ENoCall;
-    iMusPropertyMonitor->Cancel();
-    iMusPropertyMonitor->RunL();
-    EUNIT_ASSERT( !iMusPropertyMonitor->iManager );  
-    
-    iMusPropertyMonitor->iPropertyEvent.iPValue = 555;
-    iMusPropertyMonitor->Cancel();
-    iMusPropertyMonitor->RunL();
-    EUNIT_ASSERT( !iMusPropertyMonitor->iManager );  
-    
+    EUNIT_ASSERT( iMusCallStateObserverInovked );   
     }
 
 
@@ -181,14 +146,70 @@
 //
 void UT_CMusPropertyMonitor::UT_CMusPropertyMonitor_RunErrorL()
     {
+    EUNIT_ASSERT( !iMusCallStateObserverInovked );
     EUNIT_ASSERT( iMusPropertyMonitor );
+    TInt CallState;
     TInt error = KErrNotFound;
-    iMusPropertyMonitor->RunError(error);
+
+    // 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
@@ -219,6 +240,13 @@
     "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