mpx/tsrc/public/basic/collectiontest/inc/testutility.h
author hgs
Tue, 21 Sep 2010 11:25:55 -0500
changeset 62 b276843a15ba
permissions -rw-r--r--
201037

/*
* Copyright (c) 2002 - 2007 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:  Provide common utility function for all test cases
*
*/

#ifndef TESTUTILITY_H
#define TESTUTILITY_H

// INCLUDES
#include <e32cmn.h>
#include <mpxmediageneraldefs.h>
#include <mpxmessagegeneraldefs.h>
#include <mpxmediaarray.h>
#include <mpxmediacontainerdefs.h>
#include <mpxcollectionmessagedefs.h>

// FORWARD DECLARATIONS
class CMPXMedia;
class CMPXMediaArray;
class CMPXCollectionPath;
class CStifLoggger;

// CONSTANTS


// CLASS DECLARATION

/**
* This static class contains utilities functions 
*/
class TestUtility
    {
public:
    /**
    * Test whether aTest descriptor attribute  contains in aContainer
    * @param aContainer: media 
    * @param aTest: media
    * @param aAttr: attribute type
    * @return ETrue aTest's aAttr is containing in aConatiner
    */        
    template<typename T> 
    static TBool ContainMediaObject(const CMPXMedia& aContainer, const CMPXMedia& aTest, 
                                    TMPXAttribute& aAttr, TIdentityRelation<T> anIdentity);
    
    /**
    * Test whether aTest and aContainer are contain media array and match specific content in order
    * @param aContainer: media 
    * @param aTest: media
    * @param aAttr: attribute type
    * @return ETrue aTest's aAttr is containing in aConatiner
    */
    template<typename T> 
    static TBool MatchMediaArrayObject(const CMPXMedia& aContainer, const CMPXMedia& aTest, 
                                       TMPXAttribute& aAttr, TIdentityRelation<T> anIdentity);
    
    /**
    * Test whether aContainer containing all the T object in aArray with aAttr attribues in order
    * @param aContainer: media 
    * @param aArray: array of T objects
    * @param aAttr: attribute type
    * @return ETrue aTest's aAttr is containing in aConatiner
    */
    template<typename T> 
    static TBool MatchMediaArrayObject(const CMPXMedia& aContainer, const RArray<T>& aArray, 
                                       TMPXAttribute& aAttr, TIdentityRelation<T> anIdentity);

    /**
    * Test whether aContainer containing all the text object in aArray with aAttr attribues in order
    * @param aContainer: media 
    * @param aArray: array of text objects
    * @param aAttr: attribute type
    * @return ETrue aTest's aAttr is containing in aConatiner
    */
    static TBool MatchMediaArrayTextObject(const CMPXMedia& aContainer, const MDesC16Array& aArray, 
                                           TMPXAttribute& aAttr);
                                           
    
    /**
    * Log the content of collection path. Only selection of each level and top level Ids are logged
    * @param aPath a path to log
    * @param aLogger a logger to log the message
    */
    //static void LogCollectionPath(CMPXCollectionPath& aPath, CStifLogger* aLogger);
    
private:
    /**
    * Test whether aMedia1 and aMedia2 support same attribute
    * @param aMedia1: media 
    * @param aMedia2: media
    * @param aAttr: attribute type to match
    * @return ETrue aMedia1 and aMedia2 has same aAttr attribute
    */        
    static TBool ValidateMediaObject(const CMPXMedia& aMedia1, const CMPXMedia& aMedia2,
                                     TMPXAttribute& aAttr);
                                     
    /**
    * Test whether aMedia1 and aMedia2 support same array attribute
    * @param aMedia1: media 
    * @param aMedia2: media
    * @return ETrue aMedia1 and aMedia2 has same aAttr attribute
    */        
    static TBool ValidateMediaArrayObject(const CMPXMedia& aMedia1, const CMPXMedia& aMedia2);
    
    /**
    * Test whether aMedia is media array and same count as aArray
    * @param aMedia: media 
    * @param aArray: an array of items
    * @return ETrue aMedia is array object and same count as aArray
    */        
    static TBool ValidateMediaArrayObject(const CMPXMedia& aMedia, TInt aArrayCnt);
    };

#include "testutility.inl"

#endif  // TESTUTILITY_H