mmsharing/mmshavailability/tsrc/ut_availability/src/UT_CMusAvaContactAvailability.cpp
changeset 22 496ad160a278
equal deleted inserted replaced
15:ccd8e69b5392 22:496ad160a278
       
     1 /*
       
     2 * Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 //  CLASS HEADER
       
    20 #include "UT_CMusAvaContactAvailability.h"
       
    21 #include "musavaavailabilityobserver.h"
       
    22 #include "musavaavailabilityobserverimp.h"
       
    23 #include "musavaobserver.h"
       
    24 #include "musavaobserverimp.h"
       
    25 #include "musavasettingsimp.h"
       
    26 #include "muslogger.h"
       
    27 #include "musavadefaultimp.h"
       
    28 #include "musavacapabilitytesthelper.h"
       
    29 #include "mussettings.h"
       
    30 
       
    31 //  EXTERNAL INCLUDES
       
    32 #include <digia/eunit/eunitmacros.h>
       
    33 #include <cntfldst.h>
       
    34 #include <cntfield.h>
       
    35 #include <cntfilt.h>
       
    36 #include <digia/eunit/eunitdecorators.h>
       
    37 
       
    38 //  INTERNAL INCLUDES
       
    39 #include "musavacontactavailability.h"
       
    40 
       
    41 const TInt KNumberMatchingDigitsRequired( 7 );
       
    42 
       
    43 _LIT(KNumberZero,"");
       
    44 _LIT(KNumber,"05012345678");
       
    45 _LIT(KPlusNumber,"+3585012345678");
       
    46 _LIT(KFirstName,"Matti");
       
    47 _LIT(KLastName,"Meikalainen");
       
    48 _LIT(KFirstLastName,"Matti Meikalainen");
       
    49 _LIT(KLastFirstName,"Meikalainen Matti");
       
    50 
       
    51 // CONSTRUCTION
       
    52 UT_CMusAvaContactAvailability* UT_CMusAvaContactAvailability::NewL()
       
    53     {
       
    54     UT_CMusAvaContactAvailability* self = UT_CMusAvaContactAvailability::NewLC(); 
       
    55     CleanupStack::Pop();
       
    56 
       
    57     return self;
       
    58     }
       
    59 
       
    60 UT_CMusAvaContactAvailability* UT_CMusAvaContactAvailability::NewLC()
       
    61     {
       
    62     UT_CMusAvaContactAvailability* self = new( ELeave ) UT_CMusAvaContactAvailability();
       
    63     CleanupStack::PushL( self );
       
    64 
       
    65 	self->ConstructL(); 
       
    66 
       
    67     return self;
       
    68     }
       
    69 
       
    70 // Destructor (virtual by CBase)
       
    71 UT_CMusAvaContactAvailability::~UT_CMusAvaContactAvailability()
       
    72     {
       
    73     TRAP_IGNORE(
       
    74         MultimediaSharingSettings::SetOperatorVariantSettingL( iSaveOperatorVariant ) )    
       
    75     }
       
    76 
       
    77 // Default constructor
       
    78 UT_CMusAvaContactAvailability::UT_CMusAvaContactAvailability()
       
    79     {
       
    80     }
       
    81 
       
    82 // Second phase construct
       
    83 void UT_CMusAvaContactAvailability::ConstructL()
       
    84     {
       
    85     // The ConstructL from the base class CEUnitTestSuiteClass must be called.
       
    86     // It generates the test case table.
       
    87     CEUnitTestSuiteClass::ConstructL();
       
    88     iSaveOperatorVariant = MultimediaSharingSettings::OperatorVariantSettingL();    
       
    89     }
       
    90 
       
    91 //  METHODS
       
    92 
       
    93 
       
    94 
       
    95 void UT_CMusAvaContactAvailability::SetupL(  )
       
    96     {
       
    97     MultimediaSharingSettings::SetOperatorVariantSettingL( 
       
    98                                     MusSettingsKeys::EStandard );
       
    99     
       
   100     iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL();
       
   101     iConcreteSettings = CMusAvaSettingsImp::NewL();
       
   102     iContactAvailability  = CMusAvaContactAvailability::NewL( *iAvailabilityObserver,
       
   103                                                               *iConcreteSettings );                                                        
       
   104     } 
       
   105     
       
   106 void UT_CMusAvaContactAvailability::SetupOpSpecificL()
       
   107     {
       
   108     MultimediaSharingSettings::SetOperatorVariantSettingL( 
       
   109                                     MusSettingsKeys::EOperatorSpecific );
       
   110     
       
   111     iAvailabilityObserver = CMusAvaAvailabilityObserverImp::NewL();
       
   112     iConcreteSettings = CMusAvaSettingsImp::NewL();
       
   113     iContactAvailability  = CMusAvaContactAvailability::NewL( *iAvailabilityObserver,
       
   114                                                               *iConcreteSettings );                                                        
       
   115     }     
       
   116 
       
   117 void UT_CMusAvaContactAvailability::Teardown(  )
       
   118     {
       
   119     delete iContactAvailability;
       
   120     delete iAvailabilityObserver;
       
   121     delete iConcreteSettings;
       
   122     
       
   123    /* // obtain contact no in contacts DB
       
   124     TInt contactNo = iListBox->CurrentItemIndex();
       
   125     contactNo = iPositionInContactsDB.operator[](contactNo);
       
   126 
       
   127     // connect to contact database
       
   128     CContactDatabase* contactsDb = CContactDatabase::OpenL();
       
   129     CleanupStack::PushL(contactsDb);
       
   130 
       
   131     // set iterator for contacts DB
       
   132     TContactIter iter(*contactsDb);
       
   133     TContactItemId cardId;
       
   134 
       
   135     // index of contacts in contacs DB
       
   136     TInt round(0);
       
   137 
       
   138     // go to correct contact card
       
   139     while( ( cardId = iter.NextL() ) != KNullContactId )
       
   140     {
       
   141     // if currect index is index of contact we're looking - break
       
   142     if(round == contactNo)
       
   143       break;
       
   144     round++;
       
   145     }
       
   146 
       
   147     // delete contact
       
   148     contactsDb->DeleteContactL(cardId);
       
   149 
       
   150     CleanupStack::PopAndDestroy(); // contactsDb
       
   151 
       
   152     // some function to recreate and redraw List Box should be called here
       
   153     // to reflect changes*/
       
   154     }
       
   155 
       
   156 void UT_CMusAvaContactAvailability::UT_CMusAvaController_NewLL(  )
       
   157     {
       
   158   //  EUNIT_ASSERT( iContactAvailability );
       
   159     }  
       
   160 		
       
   161 void UT_CMusAvaContactAvailability::UT_CMusAvaController_DoExecuteLL()
       
   162     {
       
   163    // Non cont or phone number added to contact DB
       
   164     TRAPD( error, iContactAvailability->DoExecuteL( ) );
       
   165     if ( error == KErrNoMemory ) User::Leave( KErrNoMemory );
       
   166     TInt count = 0;
       
   167     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   168     if ( count > 0 && error != KErrNone )
       
   169         {
       
   170         User::Leave( KErrNoMemory );
       
   171         }
       
   172     }
       
   173         
       
   174     
       
   175 void UT_CMusAvaContactAvailability::UT_CMusAvaController_DoExecuteL1_L()
       
   176     {
       
   177     }
       
   178     
       
   179     
       
   180 void UT_CMusAvaContactAvailability::UT_CMusAvaController_DoExecuteL2_L()
       
   181     {
       
   182 
       
   183     iConcreteSettings->SetTelNumberL( KPlusNumber );
       
   184     
       
   185     TRAPD( error, iContactAvailability->DoExecuteL() );
       
   186     EUNIT_ASSERT( error == KErrNoMemory || error == KErrNone );
       
   187     if ( error == KErrNoMemory ) User::Leave( error );
       
   188     TInt count;
       
   189     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   190     if ( count > 0 && error != KErrNone )
       
   191         {
       
   192         User::Leave( KErrNoMemory );
       
   193         }
       
   194     
       
   195     iConcreteSettings->SetTelNumberL( KPlusNumber );
       
   196         
       
   197     TRAP( error, iContactAvailability->DoExecuteL() );
       
   198     if ( error == KErrNoMemory ) User::Leave( error );
       
   199     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   200     if ( count > 0 && error != KErrNone )
       
   201         {
       
   202         User::Leave( KErrNoMemory );
       
   203         }
       
   204     }
       
   205     
       
   206 void UT_CMusAvaContactAvailability::UT_CMusAvaController_DoExecuteL3_L()
       
   207     {
       
   208     iConcreteSettings->SetTelNumberL( KPlusNumber );
       
   209     
       
   210     TRAPD( error, iContactAvailability->DoExecuteL() );
       
   211     EUNIT_ASSERT( error == KErrNoMemory || error == KErrNone );
       
   212     if ( error == KErrNoMemory ) User::Leave( error );
       
   213     TInt count;
       
   214     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   215     if ( count > 0 && error != KErrNone )
       
   216         {
       
   217         User::Leave( KErrNoMemory );
       
   218         }
       
   219     
       
   220     iConcreteSettings->SetTelNumberL( KPlusNumber );
       
   221         
       
   222     TRAP( error, iContactAvailability->DoExecuteL() );
       
   223     if ( error == KErrNoMemory ) User::Leave( error );
       
   224     EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT( count );
       
   225     if ( count > 0 && error != KErrNone )
       
   226         {
       
   227         User::Leave( KErrNoMemory );
       
   228         }
       
   229     
       
   230     }
       
   231 
       
   232     
       
   233 void UT_CMusAvaContactAvailability::UT_CMusAvaController_NameL()
       
   234     {
       
   235     EUNIT_ASSERT( iContactAvailability->Name() == MMusAvaObserver::EMusAvaNameContactStatus );
       
   236     }
       
   237   
       
   238 void UT_CMusAvaContactAvailability::UT_CMusAvaController_StatusL()
       
   239     {
       
   240     EUNIT_ASSERT( iContactAvailability->State() == MMusAvaObserver::EMusAvaStatusNotExecuted );
       
   241     }
       
   242 
       
   243 void UT_CMusAvaContactAvailability::UT_CMusAvaController_StopL()
       
   244     {
       
   245     //EUNIT_ASSERT( iContactAvailability->Stop() == KErrNone );
       
   246     }
       
   247 
       
   248 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ActiveCallLL()   
       
   249     {
       
   250     //No prefix
       
   251     CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 10 );
       
   252     CleanupStack::PushL( array );
       
   253     
       
   254     iConcreteSettings->SetTelNumberL( KNumber );    
       
   255     EUNIT_ASSERT( !iContactAvailability->ActiveCallL( array ) );
       
   256     EUNIT_ASSERT( array->MdcaCount() == 0 );
       
   257 
       
   258 
       
   259     //Prefix
       
   260     iConcreteSettings->SetTelNumberL( KPlusNumber );    
       
   261     EUNIT_ASSERT( iContactAvailability->ActiveCallL( array ) );
       
   262     EUNIT_ASSERT( array->Count() == 1 )
       
   263     array->Reset();
       
   264    
       
   265     
       
   266     //No number
       
   267     iConcreteSettings->ReleseTelNumberL();    
       
   268     EUNIT_ASSERT( !iContactAvailability->ActiveCallL( array ) );
       
   269     EUNIT_ASSERT( array->MdcaCount() == 0 );
       
   270     CleanupStack::PopAndDestroy( array );
       
   271     }
       
   272     
       
   273 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ActiveCallLOpSpecificL()   
       
   274     {
       
   275     //No prefix
       
   276     CDesCArrayFlat* array = new ( ELeave ) CDesCArrayFlat( 10 );
       
   277     CleanupStack::PushL( array );
       
   278     
       
   279     iConcreteSettings->SetTelNumberL( KNumber );    
       
   280     EUNIT_ASSERT( iContactAvailability->ActiveCallL( array ) );
       
   281     EUNIT_ASSERT( array->MdcaCount() == 1 );
       
   282     array->Reset();
       
   283 
       
   284     //Prefix
       
   285     iConcreteSettings->SetTelNumberL( KPlusNumber );    
       
   286     EUNIT_ASSERT( iContactAvailability->ActiveCallL( array ) );
       
   287     EUNIT_ASSERT( array->Count() == 1 )
       
   288     array->Reset();
       
   289     
       
   290     //No number
       
   291     iConcreteSettings->ReleseTelNumberL();    
       
   292     EUNIT_ASSERT( !iContactAvailability->ActiveCallL( array ) );
       
   293     EUNIT_ASSERT( array->MdcaCount() == 0 );
       
   294     CleanupStack::PopAndDestroy( array );
       
   295     }    
       
   296     
       
   297 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactLL()
       
   298     {
       
   299     }
       
   300 
       
   301 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactArrayLL()
       
   302     {
       
   303     }
       
   304 
       
   305 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactItemL()   
       
   306     {
       
   307     }
       
   308 
       
   309 void UT_CMusAvaContactAvailability::UT_CMusAvaController_PhoneResulutionLL()         
       
   310     {   
       
   311     }   
       
   312     
       
   313 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactIdL()
       
   314     {
       
   315     }
       
   316 
       
   317 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ContactIdSearchL()
       
   318     {
       
   319     }
       
   320 
       
   321 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolveAddressesLL()
       
   322     {
       
   323     }
       
   324     
       
   325 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolveAddressesLOpSpecificL()
       
   326     {
       
   327     }
       
   328     
       
   329 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolvePhoneContactLL()  
       
   330     {
       
   331     }
       
   332     
       
   333 void UT_CMusAvaContactAvailability::UT_CMusAvaController_ResolvePhoneContactLOpSpecificL()  
       
   334     {
       
   335     }
       
   336 
       
   337 void UT_CMusAvaContactAvailability::UT_CMusAvaController_IsExistAlreadyL()
       
   338     {
       
   339     }
       
   340 
       
   341 void UT_CMusAvaContactAvailability::UT_CMusAvaController_UpdateContactNameLL()
       
   342     {
       
   343     }
       
   344  
       
   345 //  TEST TABLE
       
   346 
       
   347 EUNIT_BEGIN_TEST_TABLE( 
       
   348     UT_CMusAvaContactAvailability,
       
   349     "CMusAvaContactAvailability",
       
   350     "UNIT" )
       
   351 
       
   352 EUNIT_TEST(
       
   353     "NewL - test ",
       
   354     "CMusAvaContactAvailability",
       
   355     "NewL",
       
   356     "FUNCTIONALITY",
       
   357     SetupL, UT_CMusAvaController_NewLL, Teardown)
       
   358 
       
   359 EUNIT_TEST(
       
   360     "DoExecuteL - test ",
       
   361     "CMusAvaContactAvailability",
       
   362     "DoExecuteL",
       
   363     "FUNCTIONALITY",
       
   364     SetupL, UT_CMusAvaController_DoExecuteLL, Teardown) 
       
   365     
       
   366 EUNIT_TEST(
       
   367     "DoExecuteL_1 - test ",
       
   368     "CMusAvaContactAvailability",
       
   369     "DoExecuteL_1",
       
   370     "FUNCTIONALITY",
       
   371     SetupL, UT_CMusAvaController_DoExecuteL1_L, Teardown) 
       
   372     
       
   373 EUNIT_TEST(
       
   374     "DoExecuteL_2 - test ",
       
   375     "CMusAvaContactAvailability",
       
   376     "DoExecuteL_2",
       
   377     "FUNCTIONALITY",
       
   378     SetupL, UT_CMusAvaController_DoExecuteL2_L, Teardown) 
       
   379 
       
   380 EUNIT_TEST(
       
   381     "DoExecuteL_3 - test ",
       
   382     "CMusAvaContactAvailability",
       
   383     "DoExecuteL_3",
       
   384     "FUNCTIONALITY",
       
   385     SetupL, UT_CMusAvaController_DoExecuteL3_L, Teardown)
       
   386     
       
   387 EUNIT_TEST(
       
   388     "Name - test ",
       
   389     "CMusAvaController",
       
   390     "Name",
       
   391     "FUNCTIONALITY",
       
   392     SetupL, UT_CMusAvaController_NameL, Teardown)
       
   393     
       
   394 EUNIT_TEST(
       
   395     "Status - test ",
       
   396     "CMusAvaController",
       
   397     "Status",
       
   398     "FUNCTIONALITY",
       
   399     SetupL, UT_CMusAvaController_StatusL, Teardown)
       
   400     
       
   401 EUNIT_TEST(
       
   402     "Stop - test ",
       
   403     "CMusAvaController",
       
   404     "Stop",
       
   405     "FUNCTIONALITY",
       
   406     SetupL, UT_CMusAvaController_StopL, Teardown)
       
   407     
       
   408 EUNIT_TEST(
       
   409     "ActiveCallL - test ",
       
   410     "CMusAvaContactAvailability",
       
   411     "ActiveCallL",
       
   412     "FUNCTIONALITY",
       
   413     SetupL, UT_CMusAvaController_ActiveCallLL, Teardown)   
       
   414     
       
   415 EUNIT_TEST(
       
   416     "ActiveCallL OpSpecific - test ",
       
   417     "CMusAvaContactAvailability",
       
   418     "ActiveCallL",
       
   419     "FUNCTIONALITY",
       
   420     SetupOpSpecificL, UT_CMusAvaController_ActiveCallLOpSpecificL, Teardown)       
       
   421     
       
   422 EUNIT_TEST(
       
   423     "ContactL - test ",
       
   424     "CMusAvaContactAvailability",
       
   425     "ContactL",
       
   426     "FUNCTIONALITY",
       
   427     SetupL, UT_CMusAvaController_ContactLL, Teardown)  
       
   428   
       
   429 EUNIT_TEST(
       
   430     "ContactArrayL - test ",
       
   431     "CMusAvaContactAvailability",
       
   432     "ContactArrayL",
       
   433     "FUNCTIONALITY",
       
   434     SetupL, UT_CMusAvaController_ContactArrayLL, Teardown)  
       
   435     
       
   436 EUNIT_TEST(
       
   437     "ContactItem - test ",
       
   438     "CMusAvaContactAvailability",
       
   439     "ContactItem",
       
   440     "FUNCTIONALITY",
       
   441     SetupL, UT_CMusAvaController_ContactItemL, Teardown) 
       
   442         
       
   443 EUNIT_TEST(
       
   444     "PhoneResolutionL - test ",
       
   445     "CMusAvaContactAvailability",
       
   446     "PhoneResolutionL",
       
   447     "FUNCTIONALITY",
       
   448     SetupL, UT_CMusAvaController_PhoneResulutionLL, Teardown)
       
   449     
       
   450 EUNIT_TEST(
       
   451     "ContactIdSearch - test ",
       
   452     "CMusAvaContactAvailability",
       
   453     "ContactIdSearch",
       
   454     "FUNCTIONALITY",
       
   455     SetupL, UT_CMusAvaController_ContactIdSearchL, Teardown)
       
   456     
       
   457 EUNIT_TEST(
       
   458     "ContactId - test ",
       
   459     "CMusAvaContactAvailability",
       
   460     "ContactId",
       
   461     "FUNCTIONALITY",
       
   462     SetupL, UT_CMusAvaController_ContactIdL, Teardown)
       
   463     
       
   464 EUNIT_TEST(
       
   465     "ResolveAddressesL - test ",
       
   466     "CMusAvaContactAvailability",
       
   467     "ResolveAddressesL",
       
   468     "FUNCTIONALITY",
       
   469     SetupL, UT_CMusAvaController_ResolveAddressesLL, Teardown)
       
   470 
       
   471 EUNIT_TEST(
       
   472     "ResolveAddressesL OpSpecific- test ",
       
   473     "CMusAvaContactAvailability",
       
   474     "ResolveAddressesL",
       
   475     "FUNCTIONALITY",
       
   476     SetupOpSpecificL, UT_CMusAvaController_ResolveAddressesLOpSpecificL, Teardown)
       
   477 
       
   478 EUNIT_TEST(
       
   479     "ResolvePhoneContactL - test ",
       
   480     "CMusAvaContactAvailability",
       
   481     "ResolvePhoneContactL",
       
   482     "FUNCTIONALITY",
       
   483     SetupL, UT_CMusAvaController_ResolvePhoneContactLL, Teardown)
       
   484 
       
   485 EUNIT_TEST(
       
   486     "ResolvePhoneContactL OpSpecific - test ",
       
   487     "CMusAvaContactAvailability",
       
   488     "ResolvePhoneContactL",
       
   489     "FUNCTIONALITY",
       
   490     SetupOpSpecificL, UT_CMusAvaController_ResolvePhoneContactLOpSpecificL, Teardown)
       
   491 
       
   492 EUNIT_TEST(
       
   493     "IsExistAlready - test ",
       
   494     "CMusAvaContactAvailability",
       
   495     "IsExistAlready",
       
   496     "FUNCTIONALITY",
       
   497     SetupL, UT_CMusAvaController_IsExistAlreadyL, Teardown)
       
   498 
       
   499 EUNIT_TEST(
       
   500     "UpdateContactNameL - test ",
       
   501     "CMusAvaContactAvailability",
       
   502     "UpdateContactNameL",
       
   503     "FUNCTIONALITY",
       
   504     SetupL, UT_CMusAvaController_UpdateContactNameLL, Teardown)
       
   505 
       
   506 EUNIT_END_TEST_TABLE
       
   507 
       
   508 //  END OF FILE
       
   509