commsconfig/commsdatabaseshim/TE_commdb/te_usecases/src/TE_UseCasesSteps.cpp
author hgs
Mon, 06 Sep 2010 13:49:23 +0100
changeset 72 ae47d0499bee
permissions -rw-r--r--
201033_02

//
// 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:
//
//

// TE_UseCasesSteps.CPP
//
//

// Use cases as in the commdb design overview

#include <e32test.h>
#include <f32file.h>
#include <commdb.h>
#include <cdbover.h>
#include <cdbtemp.h>

#include "TE_UseCasesSteps.h"

///
CTE_CreatingDatabaseAndView::CTE_CreatingDatabaseAndView()
	{
	SetTestStepName(KCreatingDatabaseAndView);
	}

CTE_CreatingDatabaseAndView::~CTE_CreatingDatabaseAndView()
	{	
	}

enum TVerdict CTE_CreatingDatabaseAndView::doTestStepL()
	{
		
	CCommsDbTableView* view;
	CCommsDatabase* db = CCommsDatabase::NewL();
	const TPtrC kTable1(DIAL_OUT_ISP);
	const TPtrC kColumn1(ISP_TYPE);
	view = db->OpenViewMatchingUintLC(kTable1, kColumn1, EIspTypeInternetOnly);
	CleanupStack::Pop(view);

	delete view; 
	delete db;		

        SetTestStepResult(EPass);	return TestStepResult();
	}

///
CTE_UsecaseReading::CTE_UsecaseReading()
	{
	SetTestStepName(KUsecaseReading);
	}

CTE_UsecaseReading::~CTE_UsecaseReading()
	{	
	}

enum TVerdict CTE_UsecaseReading::doTestStepL()
	{

	CCommsDbTableView* view;
	CCommsDatabase* db = CCommsDatabase::NewL();
	const TPtrC kTable1(DIAL_OUT_ISP);
	const TPtrC kColumn1(ISP_TYPE);
	view = db->OpenViewMatchingUintLC(kTable1, kColumn1, EIspTypeInternetOnly);
	CleanupStack::Pop(view);	
		
	const TPtrC kColumn(ISP_DESCRIPTION);

	TBuf<KCommsDbSvrMaxFieldLength> description;

	view->GotoFirstRecord();
	view->ReadTextL(kColumn, description);

	delete view; 
	delete db;
	
        SetTestStepResult(EPass);	return TestStepResult();
	}

///
CTE_UsecaseWriting::CTE_UsecaseWriting()
	{
	SetTestStepName(KUsecaseWriting);
	}

CTE_UsecaseWriting::~CTE_UsecaseWriting()
	{	
	}

enum TVerdict CTE_UsecaseWriting::doTestStepL()
	{
	
	CCommsDbTableView* view;
	CCommsDatabase* db = CCommsDatabase::NewL();
	const TPtrC kTable1(DIAL_OUT_ISP);
	const TPtrC kColumn1(ISP_TYPE);
	view = db->OpenViewMatchingUintLC(kTable1, kColumn1, EIspTypeInternetOnly);
	CleanupStack::Pop(view);    
	
	const TPtrC kColumn(ISP_DESCRIPTION);
	const TPtrC kDescription(_L("A new description put in by t_usecases"));

	TInt ret = view->GotoNextRecord();
	if(ret == KErrNone)
		{
		ret = view->UpdateRecord();
		if(ret == KErrNone)
			{
			view->WriteTextL(kColumn, kDescription);
			view->PutRecordChanges();
			}
		}

	delete view; 
	delete db;

        SetTestStepResult(EPass);	return TestStepResult();
	}

///
CTE_UsecaseOverridingATableEntry::CTE_UsecaseOverridingATableEntry()
	{
	SetTestStepName(KUsecaseOverridingATableEntry);
	}

CTE_UsecaseOverridingATableEntry::~CTE_UsecaseOverridingATableEntry()
	{	
	}

enum TVerdict CTE_UsecaseOverridingATableEntry::doTestStepL()
	{
	const TPtrC kTable(DIAL_OUT_ISP);
	const TPtrC kColumn(ISP_DESCRIPTION);
	const TPtrC kOverride(_L("An overriden description"));
	TBuf<KCommsDbSvrMaxFieldLength> overridenValue;

	CCommDbOverrideSettings *override;
	override = CCommDbOverrideSettings::NewL(CCommDbOverrideSettings::EParamListPartial);
	CleanupStack::PushL(override);

	override->SetDesOverride(kTable, kColumn, kOverride);

	if (override->GetDesOverride(kTable, kColumn, overridenValue) != KErrNone)
		{
		User::Leave(__LINE__);
		}
	if (overridenValue != kOverride)
		{
		User::Leave(__LINE__);
		}

	CleanupStack::PopAndDestroy(override);

        SetTestStepResult(EPass);	return TestStepResult();
	}

///
CTE_UsecaseOverridingThePreferenceTable::CTE_UsecaseOverridingThePreferenceTable()
	{
	SetTestStepName(KUsecaseOverridingThePreferenceTable);
	}

CTE_UsecaseOverridingThePreferenceTable::~CTE_UsecaseOverridingThePreferenceTable()
	{	
	}

enum TVerdict CTE_UsecaseOverridingThePreferenceTable::doTestStepL()
	{
	CCommsDbConnectionPrefTableView::TCommDbIapConnectionPref overrideSettings;
	CCommsDbConnectionPrefTableView::TCommDbIapConnectionPref overridenValue;

	CCommDbOverrideSettings* override;
	override = CCommDbOverrideSettings::NewL(CCommDbOverrideSettings::EParamListPartial);
	CleanupStack::PushL(override);

	overrideSettings.iDialogPref = ECommDbDialogPrefPrompt;
	overrideSettings.iRanking = 1;
	overrideSettings.iDirection = ECommDbConnectionDirectionOutgoing;
	override->SetConnectionPreferenceOverride(overrideSettings);

	overridenValue.iRanking = 1;
	override->GetConnectionPreferenceOverride(overridenValue);

	if (!(overrideSettings == overridenValue))
		{
		User::Leave(__LINE__);
		}

	CleanupStack::PopAndDestroy(override);

        SetTestStepResult(EPass);	return TestStepResult();
	}

///
CTE_UsecaseUsingATemplate::CTE_UsecaseUsingATemplate()
	{
	SetTestStepName(KUsecaseUsingATemplate);
	}

CTE_UsecaseUsingATemplate::~CTE_UsecaseUsingATemplate()
	{	
	}

enum TVerdict CTE_UsecaseUsingATemplate::doTestStepL()
	{

	CCommsDbTableView* view;
	CCommsDatabase* db = CCommsDatabase::NewL();
	const TPtrC kTable1(DIAL_OUT_ISP);
	const TPtrC kColumn1(ISP_TYPE);
	view = db->OpenViewMatchingUintLC(kTable1, kColumn1, EIspTypeInternetOnly);
	CleanupStack::Pop(view);   
	
	const TPtrC kTable(DIAL_OUT_ISP);
	const TPtrC kColumn(ISP_DESCRIPTION);
	const TPtrC kDescription(_L("A default description put in by t_usecases"));

	CCommsDbTemplateRecord* temp;
	temp = CCommsDbTemplateRecord::NewL(db, kTable);
	CleanupStack::PushL(temp);

	temp->Modify();
	temp->WriteTextL(kColumn, kDescription);
	temp->StoreModifications();
	
	CleanupStack::PopAndDestroy(temp);
	 
	delete view; 
	delete db;
	
        SetTestStepResult(EPass);	return TestStepResult();
	}