diff -r ccd8e69b5392 -r 496ad160a278 mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaSipObserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaSipObserver.cpp Fri Jun 11 13:36:18 2010 +0300 @@ -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 +#include +//#include +#include +#include + + +// 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