idlefw/tsrc/ai_utilities_api/src/mt_apicontentprioritymap.cpp
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 10:13:44 +0300
branchRCL_3
changeset 111 053c6c7c14f3
permissions -rw-r--r--
Revision: 201026 Kit: 201033

/*
* Copyright (c) 2009 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 UNDER TEST
#include <contentprioritymap.h>

#include <mt_apicontentprioritymap.h>
#include <digia/eunit/eunitmacros.h>

using namespace AiUtility;

namespace
    {
    _LIT8( KTestId, "TestElementId" );
    
    const TInt KDefaultPriority( 0 );
    
    const TInt KHighPriority( 1 );
    }


// CONSTRUCTION
MT_ApiContentPriorityMap* MT_ApiContentPriorityMap::NewL()
    {
    MT_ApiContentPriorityMap* self = MT_ApiContentPriorityMap::NewLC();
    CleanupStack::Pop( self );
    return self;
    }

MT_ApiContentPriorityMap* MT_ApiContentPriorityMap::NewLC()
    {
    MT_ApiContentPriorityMap* self = new( ELeave ) MT_ApiContentPriorityMap();
    CleanupStack::PushL( self );
    self->ConstructL();
    return self;
    }

// Destructor (virtual by CBase)
MT_ApiContentPriorityMap::~MT_ApiContentPriorityMap()
    {
#if _BullseyeCoverage
    cov_write();
#endif
    }

// Default constructor
MT_ApiContentPriorityMap::MT_ApiContentPriorityMap()
    {
    }

// Second phase construct
void MT_ApiContentPriorityMap::ConstructL()
    {
    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
    // It generates the test case table.
    CEUnitTestSuiteClass::ConstructL();
    }

//  METHODS

void MT_ApiContentPriorityMap::SetupL(  )
    {
    iContentPriorityMap = CContentPriorityMap::NewL();
    }

void MT_ApiContentPriorityMap::Teardown(  )
    {
    delete iContentPriorityMap;
    iContentPriorityMap = NULL;
    }

void MT_ApiContentPriorityMap::TestEmptyMapL(  )
    {
    // Test that map is empty
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->CurrentPriority( KTestId ),
                         KErrNotFound );
                         
    // Test initial value setting
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->SetCurrentPriority( KTestId, KDefaultPriority ),
                         KErrNone );
    
    // Test current priority
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->CurrentPriority( KTestId ),
                         KDefaultPriority );

    }

void MT_ApiContentPriorityMap::TestClearL(  )
    {
    // Clear empty map (for coverage )
    iContentPriorityMap->ClearPriority( KTestId ); // 
 
    // Set default priority
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->SetCurrentPriority( KTestId, KDefaultPriority ),
                         KErrNone );
   
    // Clear priority
    iContentPriorityMap->ClearPriority( KTestId );
   
    // Test that priority is cleared
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->CurrentPriority( KTestId ),
                         KErrNotFound );
    }

void MT_ApiContentPriorityMap::TestUpdateL(  )
    {
    // Set default priority
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->SetCurrentPriority( KTestId, KDefaultPriority ),
                         KErrNone );
    
    // Update priority
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->SetCurrentPriority( KTestId, KHighPriority ),
                         KErrNone );
    
    // Test updated priority
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->CurrentPriority( KTestId ),
                         KHighPriority );
    }

void MT_ApiContentPriorityMap::TestOverrideL()
    {
    // Test empty map
    EUNIT_ASSERT( iContentPriorityMap->OverrideContent( KTestId, KDefaultPriority ) );
    
    // Set default
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->SetCurrentPriority( KTestId, KDefaultPriority ),
                         KErrNone );
    
    // Test again with default priority
    EUNIT_ASSERT( iContentPriorityMap->OverrideContent( KTestId, KDefaultPriority ) );                    
    
    // Test high priority
    EUNIT_ASSERT( iContentPriorityMap->OverrideContent( KTestId, KHighPriority ) );
    
    // Set high priority
    EUNIT_ASSERT_EQUALS( iContentPriorityMap->SetCurrentPriority( KTestId, KHighPriority ),
                         KErrNone );
    
    // Test default priority
    EUNIT_ASSERT( !iContentPriorityMap->OverrideContent( KTestId, KDefaultPriority ) );

    }

void MT_ApiContentPriorityMap::TestResetL()
    {
    iContentPriorityMap->Reset();
     }

//  TEST TABLE

EUNIT_BEGIN_TEST_TABLE(
    MT_ApiContentPriorityMap,
    "Unit test suite for AiUtility::CContentPriorityMap",
    "AiUtility::CContentPriorityMap" )

EUNIT_TEST(
    "Test empty map",
    "AiUtility::CContentPriorityMap",
    "CurrentPriority, SetCurrentPriority",
    "FUNCTIONALITY",
    SetupL, TestEmptyMapL, Teardown)

EUNIT_TEST(
    "Test clear functionality",
    "AiUtility::CContentPriorityMap",
    "All",
    "FUNCTIONALITY",
    SetupL, TestClearL, Teardown)

EUNIT_TEST(
    "Test update functionality",
    "AiUtility::CContentPriorityMap",
    "All",
    "FUNCTIONALITY",
    SetupL, TestUpdateL, Teardown)

EUNIT_TEST(
    "Test override functionality",
    "AiUtility::CContentPriorityMap",
    "OverrideContent, SetCurrentPriority",
    "FUNCTIONALITY",
    SetupL, TestOverrideL, Teardown)

EUNIT_TEST(
    "Test reset functionality",
    "AiUtility::CContentPriorityMap",
    "Reset, Reset",
    "FUNCTIONALITY",
    SetupL, TestResetL, Teardown)
    
    
EUNIT_END_TEST_TABLE

//  END OF FILE