diff -r ccd8e69b5392 -r 496ad160a278 mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaNetworkAvailability.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaNetworkAvailability.cpp Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,330 @@ +/* +* 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_CMusAvaNetworkAvailability.h" + +// EXTERNAL INCLUDES +#include +#include +#include + + +// INTERNAL INCLUDES +#include "musavanetworkavailability.h" +#include "musavaavailabilityobserverimp.h" +#include "musavasettingsimp.h" +#include "mussesseioninformationapi.h" + +_LIT( KTelNumber, "12345" ); +_LIT( KSipUri, "sip:uri@host" ); + +// CONSTRUCTION +UT_CMusAvaNetworkAvailability* UT_CMusAvaNetworkAvailability::NewL() + { + UT_CMusAvaNetworkAvailability* self = UT_CMusAvaNetworkAvailability::NewLC(); + CleanupStack::Pop(); + + return self; + } + +UT_CMusAvaNetworkAvailability* UT_CMusAvaNetworkAvailability::NewLC() + { + UT_CMusAvaNetworkAvailability* self = new( ELeave ) UT_CMusAvaNetworkAvailability(); + CleanupStack::PushL( self ); + + self->ConstructL(); + + return self; + } + +// Destructor (virtual by CBase) +UT_CMusAvaNetworkAvailability::~UT_CMusAvaNetworkAvailability() + { + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + 0 )); + } + +// Default constructor +UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability() + { + } + +// Second phase construct +void UT_CMusAvaNetworkAvailability::ConstructL() + { + // The ConstructL from the base class CEUnitTestSuiteClass must be called. + // It generates the test case table. + CEUnitTestSuiteClass::ConstructL(); + RProperty::Define( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + RProperty::EInt, + 0 ); + + RProperty::Define( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + RProperty::EText, + 0 ); + + RProperty::Define( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + RProperty::EInt, + 0 ); + + } + +// METHODS + + + +void UT_CMusAvaNetworkAvailability::SetupL() + { + iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL(); + iSettings = CMusAvaSettingsImp::NewL(); + iNetworkAvailability = CMusAvaNetworkAvailability::NewL( + *iAvailabilityObserver, + *iSettings ); + } + +void UT_CMusAvaNetworkAvailability::Teardown() + { + delete iNetworkAvailability; + delete iSettings; + delete iAvailabilityObserver; + PropertyHelper::Close(); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_DoExecuteLL() + { + // no call + + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + 0 )); + + iNetworkAvailability->DoExecuteL(); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusNoCall ); + + // one call, tel number given + + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + 1 )); + + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + KTelNumber )); + + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + 0 )); + + iNetworkAvailability->DoExecuteL(); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusAvailable ); + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KTelNumber ); + const MDesCArray& sipAddresses = iSettings->SipAddresses(); + EUNIT_ASSERT_EQUALS( sipAddresses.MdcaCount(), 0 ); + EUNIT_ASSERT_EQUALS( iSettings->CallDirection(), 0 ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_DoExecuteL_SipUriL() + { + // one call, SIP URI given + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallEvent, + 1 )); + + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusTelNumber, + KSipUri )); + + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + 0 )); + + iNetworkAvailability->DoExecuteL(); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusAvailable ); + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KNullDesC ); + + const MDesCArray& sipAddresses = iSettings->SipAddresses(); + EUNIT_ASSERT_EQUALS( sipAddresses.MdcaCount(), 1 ); + EUNIT_ASSERT_EQUALS( sipAddresses.MdcaPoint( 0 ), KSipUri ); + + EUNIT_ASSERT_EQUALS( iSettings->CallDirection(), 0 ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_StopL() + { + iNetworkAvailability->Stop(); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusNotExecuted ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_NameL() + { + EUNIT_ASSERT_EQUALS( iNetworkAvailability->Name(), + MMusAvaObserver::EMusAvaNameNetworkStatus ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_CallConnectedLL() + { + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + 0 )); + + iNetworkAvailability->CallConnectedL( KTelNumber, EFalse ); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusAvailable ); + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KTelNumber ); + + + // Test SIP URI + iNetworkAvailability->CallConnectedL( KSipUri, ETrue ); + // Tel number should not have been modified + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KTelNumber ); + const MDesCArray& sipAddresses = iSettings->SipAddresses(); + EUNIT_ASSERT_EQUALS( sipAddresses.MdcaCount(), 1 ); + EUNIT_ASSERT_EQUALS( sipAddresses.MdcaPoint( 0 ), KSipUri ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_ConferenceCallLL() + { + iNetworkAvailability->ConferenceCallL(); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusConferenceCall ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_CallHoldLL() + { + User::LeaveIfError( RProperty::Set( NMusSessionInformationApi::KCategoryUid, + NMusSessionInformationApi::KMusCallDirection, + 0 )); + + iNetworkAvailability->CallHoldL( KTelNumber, EFalse ); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusCallOnHold ); + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KTelNumber ); + + // Test SIP URI + iNetworkAvailability->CallConnectedL( KSipUri, ETrue ); + // Tel number should not have been modified + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KTelNumber ); + const MDesCArray& sipAddresses = iSettings->SipAddresses(); + EUNIT_ASSERT_EQUALS( sipAddresses.MdcaCount(), 1 ); + EUNIT_ASSERT_EQUALS( sipAddresses.MdcaPoint( 0 ), KSipUri ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_NoActiveCallLL() + { + iNetworkAvailability->NoActiveCallL(); + EUNIT_ASSERT_EQUALS( iNetworkAvailability->State(), + MMusAvaObserver::EMusAvaStatusNoCall ); + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KNullDesC ); + } + +void UT_CMusAvaNetworkAvailability::UT_CMusAvaNetworkAvailability_SetRemoteHostLL() + { + _LIT( KMusTestPhoneNum, "12341234" ); + iNetworkAvailability->SetRemoteHostL( KMusTestPhoneNum(), EFalse ); + EUNIT_ASSERT_EQUALS( iSettings->TelNumber(), KMusTestPhoneNum ); + EUNIT_ASSERT_EQUALS( iSettings->ContactResolvingUri(), KNullDesC ); + + _LIT( KMusTestSipUri, "sip:12341234@1.2.3.4" ); + iNetworkAvailability->SetRemoteHostL( KMusTestSipUri(), ETrue ); + EUNIT_ASSERT_EQUALS( iSettings->ContactResolvingUri(), KMusTestSipUri ); + } + + +// TEST TABLE + +EUNIT_BEGIN_TEST_TABLE( + UT_CMusAvaNetworkAvailability, + "CMusAvaNetworkAvailability", + "UNIT" ) + +EUNIT_TEST( + "DoExecuteL - test ", + "CMusAvaNetworkAvailability", + "DoExecuteL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_DoExecuteLL, Teardown) + +EUNIT_TEST( + "DoExecuteL - test SIP URI ", + "CMusAvaNetworkAvailability", + "DoExecuteL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_DoExecuteL_SipUriL, Teardown) + +EUNIT_TEST( + "Stop - test ", + "CMusAvaNetworkAvailability", + "Stop", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_StopL, Teardown) + +EUNIT_TEST( + "Name - test ", + "CMusAvaNetworkAvailability", + "Name", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_NameL, Teardown) + +EUNIT_TEST( + "CallConnectedL - test ", + "CMusAvaNetworkAvailability", + "CallConnectedL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_CallConnectedLL, Teardown ) + +EUNIT_TEST( + "ConferenceCallL - test ", + "CMusAvaNetworkAvailability", + "ConferenceCallL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_ConferenceCallLL, Teardown ) + +EUNIT_TEST( + "CallHoldL - test ", + "CMusAvaNetworkAvailability", + "CallHoldL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_CallHoldLL, Teardown ) + +EUNIT_TEST( + "NoActiveCallL - test ", + "CMusAvaNetworkAvailability", + "NoActiveCallL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_NoActiveCallLL, Teardown ) + +EUNIT_TEST( + "SetRemoteHostL - test ", + "CMusAvaNetworkAvailability", + "SetRemoteHostL", + "FUNCTIONALITY", + SetupL, UT_CMusAvaNetworkAvailability_SetRemoteHostLL, Teardown ) + + +EUNIT_END_TEST_TABLE + +// END OF FILE