commsconfig/commsdatabaseshim/TE_commdb/src/Step_064_xx.cpp
author hgs
Mon, 06 Sep 2010 13:49:23 +0100
changeset 72 ae47d0499bee
permissions -rw-r--r--
201033_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     1
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     2
// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     3
// All rights reserved.
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     4
// This component and the accompanying materials are made available
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     5
// under the terms of "Eclipse Public License v1.0"
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     6
// which accompanies this distribution, and is available
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     7
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     8
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
     9
// Initial Contributors:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    10
// Nokia Corporation - initial contribution.
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    11
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    12
// Contributors:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    13
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    14
// Description:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    15
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    16
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    17
//
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    18
// This contains CommDb Unit Test Cases 0064.XX
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    19
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    20
// EPOC includes
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    21
#include <e32base.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    22
#include <commdb.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    23
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    24
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    25
// Test system includes
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    26
//#include <networking/log.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    27
//#include <networking/teststep.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    28
#include "Teststepcommdb.h"
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    29
#include "Step_064_xx.h"
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    30
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    31
#include <commsdattypeinfov1_1.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    32
#include <commsdattypesv1_1.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    33
#include <commsdat_partner.h>
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    34
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    35
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    36
// table name
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    37
_LIT(KCDTypeNameTestTable, "Test");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    38
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    39
#define	KCDTypeNameBinaryFieldTest		      _S("BinaryTest")
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    40
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    41
// record type id
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    42
const TMDBElementId KCDTIdTestRecord         = 0x5F800000;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    43
// field type ids
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    44
const TMDBElementId KCDTIdTestBinaryField    = 0x00150000;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    45
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    46
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    47
static const SGenericRecordTypeInfo TestGenRecordInfoBinary[] =
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    48
    {
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    49
	MDB_GENERIC_TYPE_INFO(KCDTIdRecordTag,	     	EUint32,    ENoAttrs,   KCDTypeNameRecordTag),
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    50
    MDB_GENERIC_TYPE_INFO(KCDTIdRecordName,	     	EText,	    ENotNull,   KCDTypeNameRecordName),
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    51
	MDB_GENERIC_TYPE_INFO(KCDTIdTestBinaryField,	EDesC8,  	ENoAttrs,   KCDTypeNameBinaryFieldTest),
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    52
    MDB_GENERIC_TYPE_INFO(0, 0, ENoAttrs, KCDNull) 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    53
    };
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    54
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    55
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    56
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    57
NONSHARABLE_CLASS(CCDTestBinaryRecord) : public CCDRecordBase
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    58
	{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    59
public :
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    60
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    61
	// Constructor
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    62
    CCDTestBinaryRecord(TMDBElementId aElementId)
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    63
        : CCDRecordBase(aElementId), 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    64
          iBinaryField((aElementId & KCDMaskShowRecordType) | KCDTIdTestBinaryField),
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    65
          iRecordTag((aElementId & KCDMaskShowRecordType) | KCDTIdRecordTag),
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    66
          iRecordName((aElementId & KCDMaskShowRecordType) | KCDTIdRecordName)
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    67
        {}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    68
        
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    69
    const SRecordTypeInfo* GetRecordInfo(){return iRecordInfo;}    
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    70
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    71
	DATA_VTABLE
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    72
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    73
public :
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    74
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    75
	CMDBField<TDesC8>	iBinaryField;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    76
	CMDBField<TInt>	 	iRecordTag;  
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    77
	CMDBField<TDesC> 	iRecordName;   
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    78
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    79
private:
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    80
    
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    81
		static const SRecordTypeInfo iRecordInfo[];	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    82
	};
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    83
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    84
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    85
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    86
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    87
const SRecordTypeInfo CCDTestBinaryRecord::iRecordInfo[]=
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    88
  	{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    89
		{ KCDTIdRecordTag,	        EInt,		ENoAttrs,   KCDTypeNameRecordTag },
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    90
  		{ KCDTIdRecordName,     	EText,		ENotNull,   KCDTypeNameRecordName },
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    91
		{ KCDTIdTestBinaryField,	EDesC8,		ENotNull,   KCDTypeNameBinaryFieldTest },
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    92
  		{ 0, 0, ENoAttrs, KCDNull }
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    93
  	};	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    94
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    95
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    96
START_ATTRIBUTE_TABLE(CCDTestBinaryRecord, KCDTIdTestRecord,  KCDTIdTestRecord )
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    97
	X_REGISTER_ATTRIBUTE(CCDTestBinaryRecord,   iBinaryField, TMDBBin)
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    98
	X_REGISTER_ATTRIBUTE(CCDTestBinaryRecord,   iRecordTag,    TMDBNum )
ae47d0499bee 201033_02
hgs
parents:
diff changeset
    99
	X_REGISTER_ATTRIBUTE(CCDTestBinaryRecord,   iRecordName,   TMDBText )
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   100
END_ATTRIBUTE_TABLE()
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   101
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   102
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   103
_LIT8(KTestBinary, "a long binary string,a long binary string,a long binary string,a long binary string,a long binary string,a long binary string,a long binary string,end");
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   104
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   105
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   106
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   107
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   108
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   109
/////////////////////
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   110
//	Test step 064.001
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   111
/////////////////////
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   112
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   113
// constructor
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   114
CCommDbTest064_01::CCommDbTest064_01()
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   115
	{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   116
	// store the name of this test case
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   117
	SetTestStepName(_L("step_064_01"));
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   118
	}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   119
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   120
// destructor
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   121
CCommDbTest064_01::~CCommDbTest064_01()
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   122
	{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   123
	}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   124
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   125
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   126
TInt CCommDbTest064_01::executeStepL()
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   127
	{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   128
	TInt ret=KErrGeneral;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   129
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   130
	//set up a generic record with a binary field	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   131
	INFO_PRINTF1(_L("Creating  a user defined table"));
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   132
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   133
	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   134
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   135
	CleanupStack::PushL(cmdbSession); 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   136
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   137
	CMDBGenericRecord* testRecord = static_cast<CMDBGenericRecord*>(CCDRecordBase::RecordFactoryL(KCDNewTableRequest));
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   138
	CleanupStack::PushL(testRecord); 
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   139
    testRecord->InitializeL(KCDTypeNameTestTable(), TestGenRecordInfoBinary);	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   140
         
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   141
	testRecord->StoreL(*cmdbSession);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   142
	CleanupStack::PopAndDestroy(testRecord);	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   143
	CleanupStack::PopAndDestroy(cmdbSession);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   144
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   145
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   146
	//now use commdbshim api to read and write to the binary field
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   147
	CCommsDatabase*		theDb;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   148
	CCommsDbTableView*	theView;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   149
	TUint32 recordId;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   150
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   151
	//CDBLEAVE( iTheView->PutRecordChanges(), KErrNone );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   152
	theDb = CCommsDatabase::NewL();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   153
	theView = theDb->OpenTableLC( KCDTypeNameTestTable );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   154
	CleanupStack::Pop();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   155
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   156
	TBuf8<KMaxLongTextLength> value(KTestBinary);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   157
	CDBLEAVE(theView->InsertRecord(recordId), KErrNone );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   158
	theView->WriteTextL(TPtrC(KCDTypeNameBinaryFieldTest), value );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   159
	CDBLEAVE(theView->PutRecordChanges(), KErrNone );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   160
	CDBLEAVE(theView->GotoFirstRecord(), KErrNone );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   161
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   162
	TBuf8<KMaxLongTextLength> value2;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   163
	theView->ReadTextL( TPtrC(KCDTypeNameBinaryFieldTest), value2 );
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   164
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   165
 	if( value2.Compare( value ) == 0)
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   166
		{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   167
		ret = KErrNone;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   168
		}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   169
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   170
	delete theView;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   171
	delete theDb;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   172
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   173
	return ret;
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   174
	}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   175
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   176
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   177
TVerdict CCommDbTest064_01::doTestStepL( )
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   178
	{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   179
	SetTestStepResult(EFail);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   180
	
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   181
	INFO_PRINTF1(_L("Step 064.01 called "));
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   182
	if ( executeStepL() == KErrNone )
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   183
		{
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   184
		SetTestStepResult(EPass);
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   185
		}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   186
		
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   187
	return TestStepResult();
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   188
	}
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   189
ae47d0499bee 201033_02
hgs
parents:
diff changeset
   190