apicompatanamdw/bcdrivers/os/lbs/LocAcquisition/src/testcriteria.cpp
author Maciej Seroka <maciejs@symbian.org>
Thu, 11 Nov 2010 14:03:20 +0000
changeset 26 26ffa9d5444d
parent 2 0cb2248d0edc
permissions -rw-r--r--
Updated knownissues.xml - wk_45_2010

/*
* Copyright (c) 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:   Helper class for TPositionSelectionOrder,TPositionCriteriaBase
*                & TPositionCriteria class
*
*/


// System Includes


// User Includes
#include "testcriteria.h"
#include <e32std.h>

// Constant Declarations

    
// ======== MEMBER FUNCTIONS ========

// ---------------------------------------------------------------------------
// C++ Default Constructor
// ---------------------------------------------------------------------------
//
TTestCriteria ::TTestCriteria (CStifLogger* aLog):iLog(aLog)
    {
        
    }

// ---------------------------------------------------------------------------
// C++ Destructor
// ---------------------------------------------------------------------------
//
TTestCriteria ::~TTestCriteria ()
    {
        
    }


// ---------------------------------------------------------
//  Test case for Default Constructor of TPositionSelectionOrder
// ---------------------------------------------------------
//	
TInt TTestCriteria :: DefaultPositionSelectionOrder()
    {
    	TPositionSelectionOrder posSelOrder;
    	
        return KErrNone;
    }

// ---------------------------------------------------------
// Test case for SetOrderTimeToFirstFix
// ---------------------------------------------------------
//	
TInt TTestCriteria :: DoSetOrderTimeToFirstFix(CStifItemParser& aItem)
    {
    	TPositionSelectionOrder posSelOrder;
    	TInt order1 = 0;
    	TInt err = aItem.GetNextInt(order1);
    	TPositionSelectionOrder::TOrder order2 = TPositionSelectionOrder::EOrderDontCare;
    	if(!err)
    	    {
    	        switch(order1)
    	            {
        	            case 0: order2 = TPositionSelectionOrder::EOrderDontCare; 
        	                    break;
        	            case 1: order2 = TPositionSelectionOrder::EOrderDefault;
        	                    break;
        	            case 2: order2 = TPositionSelectionOrder::EOrderVeryLow;
        	                    break;
        	            case 3: order2 = TPositionSelectionOrder::EOrderLow;
        	                    break;
        	            case 4: order2 = TPositionSelectionOrder::EOrderFairlyLow;
        	                    break;
        	            case 5: order2 = TPositionSelectionOrder::EOrderMedium;
        	                    break;
        	            case 6: order2 = TPositionSelectionOrder::EOrderFairlyHigh;
        	                    break;
        	            case 7: order2 = TPositionSelectionOrder::EOrderHigh;
        	                    break;
        	            case 8: order2 = TPositionSelectionOrder::EOrderVeryHigh;
        	                    break;
        	            default: break;
    	                    
    	            }
    	            TInt error = posSelOrder.SetOrderTimeToFirstFix(order2);
    	            return error;
    	    }
    	  else
    	    return KErrGeneral;
    	
        
    }
    
// ---------------------------------------------------------
// Test case for SetOrderTimeToNextFix
// ---------------------------------------------------------
//	
TInt TTestCriteria :: DoSetOrderTimeToNextFix(CStifItemParser& aItem)
    {
    	TPositionSelectionOrder posSelOrder;
    	TInt order1 = 0;
    	TInt err = aItem.GetNextInt(order1);
    	TPositionSelectionOrder::TOrder order2 = TPositionSelectionOrder::EOrderDontCare;
    	if(!err)
    	    {
    	        switch(order1)
    	            {
        	            case 0: order2 = TPositionSelectionOrder::EOrderDontCare; 
        	                    break;
        	            case 1: order2 = TPositionSelectionOrder::EOrderDefault;
        	                    break;
        	            case 2: order2 = TPositionSelectionOrder::EOrderVeryLow;
        	                    break;
        	            case 3: order2 = TPositionSelectionOrder::EOrderLow;
        	                    break;
        	            case 4: order2 = TPositionSelectionOrder::EOrderFairlyLow;
        	                    break;
        	            case 5: order2 = TPositionSelectionOrder::EOrderMedium;
        	                    break;
        	            case 6: order2 = TPositionSelectionOrder::EOrderFairlyHigh;
        	                    break;
        	            case 7: order2 = TPositionSelectionOrder::EOrderHigh;
        	                    break;
        	            case 8: order2 = TPositionSelectionOrder::EOrderVeryHigh;
        	                    break;
        	            default: break;
    	                    
    	            }
    	            TInt error = posSelOrder.SetOrderTimeToNextFix(order2);
    	            return error;
    	    }
    	  else
    	    return KErrGeneral;
    	
        
    }
    
// ---------------------------------------------------------
// Test case for SetOrderHorizontalAccuracy
// ---------------------------------------------------------
//	
TInt TTestCriteria :: DoSetOrderHorizontalAccuracy(CStifItemParser& aItem)
    {
    	TPositionSelectionOrder posSelOrder;
    	TInt order1 = 0;
    	TInt err = aItem.GetNextInt(order1);
    	TPositionSelectionOrder::TOrder order2 = TPositionSelectionOrder::EOrderDontCare;
    	if(!err)
    	    {
    	        switch(order1)
    	            {
        	            case 0: order2 = TPositionSelectionOrder::EOrderDontCare; 
        	                    break;
        	            case 1: order2 = TPositionSelectionOrder::EOrderDefault;
        	                    break;
        	            case 2: order2 = TPositionSelectionOrder::EOrderVeryLow;
        	                    break;
        	            case 3: order2 = TPositionSelectionOrder::EOrderLow;
        	                    break;
        	            case 4: order2 = TPositionSelectionOrder::EOrderFairlyLow;
        	                    break;
        	            case 5: order2 = TPositionSelectionOrder::EOrderMedium;
        	                    break;
        	            case 6: order2 = TPositionSelectionOrder::EOrderFairlyHigh;
        	                    break;
        	            case 7: order2 = TPositionSelectionOrder::EOrderHigh;
        	                    break;
        	            case 8: order2 = TPositionSelectionOrder::EOrderVeryHigh;
        	                    break;
        	            default: break;
    	                    
    	            }
    	            TInt error = posSelOrder.SetOrderHorizontalAccuracy(order2);
    	            return error;
    	    }
    	  else
    	    return KErrGeneral;
    	
        
    }
 
 
 // ---------------------------------------------------------
// Test case for SetOrderVerticalAccuracy
// ---------------------------------------------------------
//	
TInt TTestCriteria :: DoSetOrderVerticalAccuracy(CStifItemParser& aItem)
    {
    	TPositionSelectionOrder posSelOrder;
    	TInt order1 = 0;
    	TInt err = aItem.GetNextInt(order1);
    	TPositionSelectionOrder::TOrder order2 = TPositionSelectionOrder::EOrderDontCare;
    	if(!err)
    	    {
    	        switch(order1)
    	            {
        	            case 0: order2 = TPositionSelectionOrder::EOrderDontCare; 
        	                    break;
        	            case 1: order2 = TPositionSelectionOrder::EOrderDefault;
        	                    break;
        	            case 2: order2 = TPositionSelectionOrder::EOrderVeryLow;
        	                    break;
        	            case 3: order2 = TPositionSelectionOrder::EOrderLow;
        	                    break;
        	            case 4: order2 = TPositionSelectionOrder::EOrderFairlyLow;
        	                    break;
        	            case 5: order2 = TPositionSelectionOrder::EOrderMedium;
        	                    break;
        	            case 6: order2 = TPositionSelectionOrder::EOrderFairlyHigh;
        	                    break;
        	            case 7: order2 = TPositionSelectionOrder::EOrderHigh;
        	                    break;
        	            case 8: order2 = TPositionSelectionOrder::EOrderVeryHigh;
        	                    break;
        	            default: break;
    	                    
    	            }
    	            TInt error = posSelOrder.SetOrderVerticalAccuracy(order2);
    	            return error;
    	    }
    	  else
    	    return KErrGeneral;
    	
        
    }
    
 // ---------------------------------------------------------
// Test case for SetOrderCostIndicator
// ---------------------------------------------------------
//	
TInt TTestCriteria :: DoSetOrderCostIndicator(CStifItemParser& aItem)
    {
    	TPositionSelectionOrder posSelOrder;
    	TInt order1 = 0;
    	TInt err = aItem.GetNextInt(order1);
    	TPositionSelectionOrder::TOrder order2 = TPositionSelectionOrder::EOrderDontCare;
    	if(!err)
    	    {
    	        switch(order1)
    	            {
        	            case 0: order2 = TPositionSelectionOrder::EOrderDontCare; 
        	                    break;
        	            case 1: order2 = TPositionSelectionOrder::EOrderDefault;
        	                    break;
        	            case 2: order2 = TPositionSelectionOrder::EOrderVeryLow;
        	                    break;
        	            case 3: order2 = TPositionSelectionOrder::EOrderLow;
        	                    break;
        	            case 4: order2 = TPositionSelectionOrder::EOrderFairlyLow;
        	                    break;
        	            case 5: order2 = TPositionSelectionOrder::EOrderMedium;
        	                    break;
        	            case 6: order2 = TPositionSelectionOrder::EOrderFairlyHigh;
        	                    break;
        	            case 7: order2 = TPositionSelectionOrder::EOrderHigh;
        	                    break;
        	            case 8: order2 = TPositionSelectionOrder::EOrderVeryHigh;
        	                    break;
        	            default: break;
    	                    
    	            }
    	            TInt error = posSelOrder.SetOrderCostIndicator(order2);
    	            return error;
    	    }
    	  else
    	    return KErrGeneral;
    	
        
    }
  
  
 // ---------------------------------------------------------
// Test case for SetOrderPowerConsumption
// ---------------------------------------------------------
//	
TInt TTestCriteria :: DoSetOrderPowerConsumption(CStifItemParser& aItem)
    {
    	TPositionSelectionOrder posSelOrder;
    	TInt order1 = 0;
    	TInt err = aItem.GetNextInt(order1);
    	TPositionSelectionOrder::TOrder order2 = TPositionSelectionOrder::EOrderDontCare;
    	if(!err)
    	    {
    	        switch(order1)
    	            {
        	            case 0: order2 = TPositionSelectionOrder::EOrderDontCare; 
        	                    break;
        	            case 1: order2 = TPositionSelectionOrder::EOrderDefault;
        	                    break;
        	            case 2: order2 = TPositionSelectionOrder::EOrderVeryLow;
        	                    break;
        	            case 3: order2 = TPositionSelectionOrder::EOrderLow;
        	                    break;
        	            case 4: order2 = TPositionSelectionOrder::EOrderFairlyLow;
        	                    break;
        	            case 5: order2 = TPositionSelectionOrder::EOrderMedium;
        	                    break;
        	            case 6: order2 = TPositionSelectionOrder::EOrderFairlyHigh;
        	                    break;
        	            case 7: order2 = TPositionSelectionOrder::EOrderHigh;
        	                    break;
        	            case 8: order2 = TPositionSelectionOrder::EOrderVeryHigh;
        	                    break;
        	            default: break;
    	                    
    	            }
    	            TInt error = posSelOrder.SetOrderPowerConsumption(order2);
    	            return error;
    	    }
    	  else
    	    return KErrGeneral;
    	
        
    }
    
    
 // ---------------------------------------------------------
// Test case to check ResetSelectionOrder
// ---------------------------------------------------------

TInt TTestCriteria ::DoResetSelectionOrder()
    {
        TPositionSelectionOrder posSelOrder;
        posSelOrder.ResetSelectionOrder();
        return KErrNone;
    }

 // ---------------------------------------------------------
// Test case to check ClearSelectionOrder
// ---------------------------------------------------------

TInt TTestCriteria ::DoClearSelectionOrder()
    {
        TPositionSelectionOrder posSelOrder;
        posSelOrder.ClearSelectionOrder();
        return KErrNone;
    }
    
 // ---------------------------------------------------------
// Test case for NumSelectionItems
// ---------------------------------------------------------

TInt TTestCriteria ::GetNumSelectionItems()
    {
        TPositionSelectionOrder posSelOrder;
        TUint numSelItems = posSelOrder.NumSelectionItems();
        if(numSelItems)
            {
                return KErrNone;
            }
        else
            return KErrGeneral;
    }


 // ---------------------------------------------------------
// Test case for GetSelectionItem
// ---------------------------------------------------------

TInt TTestCriteria ::DoGetSelectionItem()
    {
        TPositionSelectionOrder posSelOrder;
        TPositionSelectionOrder::TOrder order;
        TPositionSelectionOrder::TField field;
        TUint index = 2;
        TInt error = posSelOrder.GetSelectionItem(index,field,order);
        return error;
        
        
    }


 // ---------------------------------------------------------
// Test case for setting & getting RequiredCapabilities
// ---------------------------------------------------------

TInt TTestCriteria ::SetGetRequiredCapabilities(CStifItemParser& aItem)
    {
         TInt capability1 = 0;
        
        TInt error = aItem.GetNextInt(capability1);
        TPositionCriteria posCriteria;
        
        if(!error)
            {
                TPositionModuleInfo::TCapabilities capability2 = TPositionModuleInfo::ECapabilityNone;
                switch(capability1)
                    {
                        case 0: capability2 = TPositionModuleInfo::ECapabilityNone;
                                break;
                        case 1: capability2 = TPositionModuleInfo::ECapabilityHorizontal;	
                                break;
                        case 2: capability2 = TPositionModuleInfo::ECapabilityVertical;
                                break;
                        case 3: capability2 = TPositionModuleInfo::ECapabilitySpeed;
                                break;
                        case 4: capability2 = TPositionModuleInfo::ECapabilityDirection;
                                break;
                        case 5: capability2 = TPositionModuleInfo::ECapabilitySatellite;
                                break;
                        case 6: capability2 = TPositionModuleInfo::ECapabilityCompass ;
                                break;
                        case 7: capability2 = TPositionModuleInfo::ECapabilityNmea ;
                                break;
                        case 8: capability2 = TPositionModuleInfo::ECapabilityAddress ;
                                break;
                        case 9: capability2 = TPositionModuleInfo::ECapabilityBuilding;
                                break;
                        case 10:capability2 = TPositionModuleInfo::ECapabilityMedia ;
                                break;
                        default:break;
                        
                    }
                  posCriteria.AddRequiredCapabilities(capability2);
                  TPositionModuleInfo::TCapabilities cap = posCriteria.RequiredCapabilities();
                  if(cap==capability2)
                    {
                        return KErrNone;
                    }
                  else 
                        return KErrGeneral;
                  
            }
         else
            return KErrGeneral;
            
            
    }
    
    
// ---------------------------------------------------------
// Test case for ClearRequiredCapabilities
// ---------------------------------------------------------

TInt TTestCriteria :: DoClearRequiredCapabilities()
    {
        TPositionCriteria posCriteria;
        TPositionModuleInfo::TCapabilities capability = TPositionModuleInfo::ECapabilityHorizontal;
        posCriteria.AddRequiredCapabilities(capability);
        TPositionModuleInfo::TCapabilities cap = posCriteria.RequiredCapabilities();
        posCriteria.ClearRequiredCapabilities();
        TPositionModuleInfo::TCapabilities cap1 = posCriteria.RequiredCapabilities();
        if(cap!=cap1)  
            {
                return KErrNone;
            }
        else
            return KErrGeneral;
        
    }

// ---------------------------------------------------------
// Test case for setting & getting RequiredQuality
// ---------------------------------------------------------

TInt TTestCriteria :: SetGetRequiredQuality()
    {
            TPositionCriteria posCriteria;
            TPositionQuality pos1;
            TPositionQuality pos2;
            TPositionQuality::TCostIndicator costInd = TPositionQuality::ECostUnknown;
            pos1.SetCostIndicator(costInd);
            posCriteria.SetRequiredQuality(pos1);
            posCriteria.GetRequiredQuality(pos2);
            if(pos1.CostIndicator()==pos2.CostIndicator())
                {
                    return KErrNone;
                }
            else
                return KErrGeneral;
            

        
    }


// ---------------------------------------------------------
// Test case for setting & getting SelectionOrder
// ---------------------------------------------------------

TInt TTestCriteria :: SetGetSelectionOrder()
    {
        TPositionSelectionOrder posSelOrder1;
        TPositionSelectionOrder posSelOrder2;
        TPositionSelectionOrder::TOrder order1 = TPositionSelectionOrder::EOrderLow ;
        TPositionSelectionOrder::TOrder order2;
        TPositionSelectionOrder::TField field;
        TUint index = 4;
        posSelOrder1.SetOrderCostIndicator(order1);
        TPositionCriteria posCriteria;
        posCriteria.SetSelectionOrder(posSelOrder1);
        posCriteria.GetSelectionOrder(posSelOrder2);
        posSelOrder2.GetSelectionItem(index,field,order2);
        if(order2==order1)
            {
                return KErrNone;
            }
        else
            return KErrGeneral;
        
        
        
        
        
    }
    
    
    
    
 // ---------------------------------------------------------
//Test case for ResetCriteria
// ---------------------------------------------------------
TInt TTestCriteria ::  DoResetCriteria()
    {
        TPositionCriteria posCriteria;
        posCriteria.ResetCriteria();
        return KErrNone;
    }

 // ---------------------------------------------------------
//Test case for ClearCriteria
// ---------------------------------------------------------
TInt TTestCriteria ::  DoClearCriteria()
    {
        TPositionCriteria posCriteria;
        posCriteria.ClearCriteria();
        return KErrNone;
    }
    
// ---------------------------------------------------------
//Test Case for default constructor of TPositionCriteria
// ---------------------------------------------------------
   TInt TTestCriteria :: DefaultPositionCriteria()
    {
        TPositionCriteria posCriteria;
        return KErrNone;
    }
    
// ---------------------------------------------------------
//Test Case for  constructor of TPositionCriteria with 
// required capabilities as parameter
// ---------------------------------------------------------
   TInt TTestCriteria :: PositionCriteriaCons(CStifItemParser& aItem)
    {
         TInt capability1 = 0;
        
        TInt error = aItem.GetNextInt(capability1);
        if(!error)
            {
                TPositionModuleInfo::TCapabilities capability2 = TPositionModuleInfo::ECapabilityNone;
                switch(capability1)
                    {
                        case 0: capability2 = TPositionModuleInfo::ECapabilityNone;
                                break;
                        case 1: capability2 = TPositionModuleInfo::ECapabilityHorizontal;	
                                break;
                        case 2: capability2 = TPositionModuleInfo::ECapabilityVertical;
                                break;
                        case 3: capability2 = TPositionModuleInfo::ECapabilitySpeed;
                                break;
                        case 4: capability2 = TPositionModuleInfo::ECapabilityDirection;
                                break;
                        case 5: capability2 = TPositionModuleInfo::ECapabilitySatellite;
                                break;
                        case 6: capability2 = TPositionModuleInfo::ECapabilityCompass ;
                                break;
                        case 7: capability2 = TPositionModuleInfo::ECapabilityNmea ;
                                break;
                        case 8: capability2 = TPositionModuleInfo::ECapabilityAddress ;
                                break;
                        case 9: capability2 = TPositionModuleInfo::ECapabilityBuilding;
                                break;
                        case 10:capability2 = TPositionModuleInfo::ECapabilityMedia ;
                                break;
                        default:break;
                        
                    }
                    
                   TPositionCriteria posCriteria(capability2);
                   TPositionModuleInfo::TCapabilities cap = posCriteria.RequiredCapabilities();
                  if(cap==capability2)
                    {
                        return KErrNone;
                    }
                  else 
                        return KErrGeneral;
            }
            else
                return KErrGeneral;
                    
    }