--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaSipObserver.cpp Thu Dec 17 08:44:37 2009 +0200
@@ -0,0 +1,243 @@
+/*
+* Copyright (c) 2004 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:
+*
+*/
+
+
+// CLASS HEADER
+#include "UT_CMusAvaSipObserver.h"
+#include "muslogger.h"
+#include "mussettings.inl"
+#include "CSipSseTestTls.h"
+#include "mussettingskeys.h"
+#include "musavasipdefaulthandler.h"
+#include "sipconnectionobserver.h"
+#include "musavasipdefaulthandler.h"
+#include "musavasipconnectionadapter.h"
+#include "musavasettingsimp.h"
+#include "musavaregisteravailability.h"
+#include "musavasipprofileregistryobserver.h"
+#include "musavasipadapterimp.h"
+#include "musavacapabilitytesthelper.h" //remove compilation warning
+
+// EXTERNAL INCLUDES
+#include <digia/eunit/eunitmacros.h>
+#include <e32base.h>
+//#include <telephonyinternalpskeys.h>
+#include <sipprofileregistry.h>
+#include <sip.h>
+
+
+// INTERNAL INCLUDES
+#include "musavasipobserver.h"
+
+
+
+// CONSTRUCTION
+UT_CMusAvaSipObserver* UT_CMusAvaSipObserver::NewL()
+ {
+ UT_CMusAvaSipObserver* self = UT_CMusAvaSipObserver::NewLC();
+ CleanupStack::Pop();
+
+ return self;
+ }
+
+UT_CMusAvaSipObserver* UT_CMusAvaSipObserver::NewLC()
+ {
+ UT_CMusAvaSipObserver* self = new( ELeave ) UT_CMusAvaSipObserver();
+ CleanupStack::PushL( self );
+
+ self->ConstructL();
+
+ return self;
+ }
+
+// Destructor (virtual by CBase)
+UT_CMusAvaSipObserver::~UT_CMusAvaSipObserver()
+ {
+ }
+
+// Default constructor
+UT_CMusAvaSipObserver::UT_CMusAvaSipObserver()
+ {
+ }
+
+// Second phase construct
+void UT_CMusAvaSipObserver::ConstructL()
+ {
+ // The ConstructL from the base class CEUnitTestSuiteClass must be called.
+ // It generates the test case table.
+ CEUnitTestSuiteClass::ConstructL();
+ }
+
+// METHODS
+
+
+
+void UT_CMusAvaSipObserver::SetupL( )
+ {
+ SIPStrings::OpenL();
+ iAdapterImp = CMusAvaSipAdapterImp::NewL();
+ iAdapterImp2 = CMusAvaSipAdapterImp::NewL();
+ iAdapterImp3 = CMusAvaSipAdapterImp::NewL();
+
+ iMusAvaSipObserver = CMusAvaSipObserver::NewL();
+ }
+
+void UT_CMusAvaSipObserver::Teardown( )
+ {
+ delete iMusAvaSipObserver;
+ iMusAvaSipObserver = NULL;
+ delete iAdapterImp;
+ iAdapterImp = NULL;
+ delete iAdapterImp2;
+ iAdapterImp2 = NULL;
+ delete iAdapterImp3;
+ iAdapterImp3 = NULL;
+ SIPStrings::Close();
+ }
+
+void UT_CMusAvaSipObserver::AddObserversL()
+ {
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp, KErrNotFound );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 1 );
+
+ // Do it twice, duplicates are ignored
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp, KErrNotFound );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 1 );
+ }
+
+void UT_CMusAvaSipObserver::UT_CMusAvaSipObserver_AddObserverL()
+ {
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp, KErrNotFound );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 1 );
+
+ // Do it twice, duplicates are ignored
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp, KErrNotFound );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 1 );
+
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp2, 0 );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 2 );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers[0] == iAdapterImp2 );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers[1] == iAdapterImp );
+
+ iMusAvaSipObserver->iObservers.Reset();
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 0 );
+
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp, KErrNotFound ); // invite handler
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp2, KErrNotFound ); // default option handler
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp3, 1 ); // option handler
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers[0] == iAdapterImp );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers[1] == iAdapterImp3 );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers[2] == iAdapterImp2 );
+
+ iMusAvaSipObserver->iObservers.Remove(2);
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 2 );
+
+ iMusAvaSipObserver->AddObserverL( *iAdapterImp2, 10 );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 3 );
+
+
+ }
+
+void UT_CMusAvaSipObserver::UT_CMusAvaSipObserver_RemoveObserverL()
+ {
+ AddObserversL();
+ iMusAvaSipObserver->RemoveObserver( *iAdapterImp );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 0 );
+ iMusAvaSipObserver->RemoveObserver( *iAdapterImp );
+ EUNIT_ASSERT( iMusAvaSipObserver->iObservers.Count() == 0 );
+ }
+
+void UT_CMusAvaSipObserver::UT_CMusAvaSipObserver_IncomingRequestL()
+ {
+ AddObserversL();
+
+ // Ok
+ TUint32 iapId( 6 );
+ CSIPServerTransaction* serverTransaction =
+ CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EOptions ) );
+ iMusAvaSipObserver->IncomingRequest( iapId, serverTransaction );
+ EUNIT_ASSERT( iAdapterImp->iServerTransaction == serverTransaction );
+ EUNIT_ASSERT( iAdapterImp->iIapId == iapId );
+
+ // Not ok
+ iAdapterImp->Reset();
+ iAdapterImp->iReturnCode = KErrGeneral;
+ CSIPServerTransaction* serverTransaction2 =
+ CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EOptions ) );
+ iMusAvaSipObserver->IncomingRequest( iapId, serverTransaction2 );
+ EUNIT_ASSERT( iAdapterImp->iServerTransaction == NULL );
+
+ }
+
+void UT_CMusAvaSipObserver::UT_CMusAvaSipObserver_TimedOutL()
+ {
+ AddObserversL();
+
+ CSIPServerTransaction* serverTransaction =
+ CSIPServerTransaction::NewL( SIPStrings::StringF( SipStrConsts::EOptions ) );
+ CleanupStack::PushL( serverTransaction );
+ iMusAvaSipObserver->TimedOut( *serverTransaction );
+ EUNIT_ASSERT( iAdapterImp->iServerTransaction == serverTransaction );
+
+ // Not ok
+ iAdapterImp->Reset();
+ iAdapterImp->iReturnCode = KErrGeneral;
+ iMusAvaSipObserver->TimedOut( *serverTransaction );
+ EUNIT_ASSERT( iAdapterImp->iServerTransaction == NULL );
+ CleanupStack::PopAndDestroy( serverTransaction );
+ }
+
+// TEST TABLE
+
+EUNIT_BEGIN_TEST_TABLE(
+ UT_CMusAvaSipObserver,
+ "CMusAvaSipObserver",
+ "UNIT" )
+
+EUNIT_TEST(
+ "AddObserverL - test ",
+ "CMusAvaSipObserver",
+ "AddObserverL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSipObserver_AddObserverL, Teardown)
+
+
+EUNIT_TEST(
+ "RemoveObserverL - test ",
+ "CMusAvaSipObserver",
+ "RemoveObserverL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSipObserver_RemoveObserverL, Teardown)
+
+EUNIT_TEST(
+ "IncomingRequestL - test ",
+ "CMusAvaSipObserver",
+ "IncomingRequestL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSipObserver_IncomingRequestL, Teardown)
+
+
+EUNIT_TEST(
+ "TimedOutL - test ",
+ "CMusAvaSipObserver",
+ "TimedOutL",
+ "FUNCTIONALITY",
+ SetupL, UT_CMusAvaSipObserver_TimedOutL, Teardown)
+
+EUNIT_END_TEST_TABLE
+
+// END OF FILE