commsfwtools/preparedefaultcommsdatabase/te_commsdat/src/commsdatBasicFunctionalityTests.cpp
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsfwtools/preparedefaultcommsdatabase/te_commsdat/src/commsdatBasicFunctionalityTests.cpp	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,1776 @@
+// Copyright (c) 2005-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:
+// CCommsdat1Step
+// CCommsdat2Step
+// CCommsdat3Step
+// CCommsdat4Step
+// CCommsdat5Step
+// CCommsdat6Step
+// CCommsdat7Step
+// CCommsdat8Step
+// CCommsdat9Step
+// CCommsdat10Step
+// CCommsdat11Step
+// CCommsdat12Step
+// CCommsdat13Step
+// CCommsdat14Step
+// CCommsdat15Step
+// CCommsdat16Step
+// CCommsdat17Step
+// CCommsdat18Step
+// CCommsdat19Step
+// CCommsdat20Step
+// CCommsdat21Step
+// CCommsdat22Step
+// CCommsdat23Step
+// CCommsdat24Step
+// CCommsdat25Step
+// CCommsdat26Step
+// CCommsdat27Step
+// CCommsdat28Step
+// 
+//
+
+/**
+ @file commsdatBasicFunctionalityTests.cpp
+*/
+#include "commsdatBasicFunctionalityTests.h"
+#include "Te_commsdatSuiteDefs.h"
+#include "CommsDatInternalDefs.h"
+#include <e32test.h>
+#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <commsdat_partner.h>
+#endif
+
+CCommsdat1Step::~CCommsdat1Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat1Step::CCommsdat1Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat1Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat1Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a session object and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("Setting Repository.  In CCommsdat1Step::doTestStepL() "));
+	
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+ 	
+    delete cmdbSession;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat2Step::CCommsdat2Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat2Step);
+	}
+
+
+TVerdict CCommsdat2Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Set and get attributes
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L(" Setting Repository & creating IAP RecordSet & setting/getting attributes - CCommsdat2Step::doTestStepL()"));
+	
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+ 	
+	CleanupStack::PushL(cmdbSession);  
+	
+    CMDBRecordSet<CCDIAPRecord>* IAPRecords = new(ELeave) CMDBRecordSet<CCDIAPRecord>;
+
+    IAPRecords->SetAttributes(ECDProtectedWrite);
+
+    TMDBAttributeFlags atts = IAPRecords->Attributes();
+
+    if (atts == ECDProtectedWrite)
+        SetTestStepResult(EPass);	
+	
+    delete IAPRecords;
+    CleanupStack::PopAndDestroy(cmdbSession);
+
+    return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat3Step::CCommsdat3Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat3Step);
+	}
+
+TVerdict CCommsdat3Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object and delete it 
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat3Step::doTestStepL() in the file commsdat3Step.cpp"));
+	
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>(); 
+	delete dbField;
+	
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat4Step::CCommsdat4Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat4Step);
+	}
+
+
+TVerdict CCommsdat4Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object, set element id and delete it 
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("Creating a field and setting element id - CCommsdat4Step::doTestStepL() in the file commsdat4Step.cpp"));
+	
+	TMDBElementId elementId = 0x04021600;
+	CMDBField<TUint32> *dbField = new(ELeave) CMDBField<TUint32>(elementId); 
+
+    INFO_PRINTF3(_L("ElementId is %08x, should be %08x"), dbField->ElementId(), elementId); 
+	
+    if (elementId == dbField->ElementId())
+        SetTestStepResult(EPass);	
+
+    delete dbField;
+
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat5Step::CCommsdat5Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat5Step);
+	}
+
+
+TVerdict CCommsdat5Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id and delete it 
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat5Step::doTestStepL() in the file commsdat5Step.cpp"));
+	
+	TMDBElementId elementId = 5;
+
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>(elementId); 
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat6Step::CCommsdat6Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat6Step);
+	}
+
+
+TVerdict CCommsdat6Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object, assign a value and delete it 
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat6Step::doTestStepL() in the file commsdat6Step.cpp.  Setting TUint32 value"));
+	
+	CMDBField<TUint32> *dbField = new(ELeave) CMDBField<TUint32>();
+	TMDBElementId data = 13;
+    *dbField = data; 
+
+    INFO_PRINTF3(_L("value is %08x, should be %08x"), (TUint32)*dbField, data); 
+        
+    if( data == *dbField)
+        SetTestStepResult(EPass);	
+
+	delete dbField;
+
+ 	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat7Step::CCommsdat7Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat7Step);
+	}
+
+
+TVerdict CCommsdat7Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object and variable with the same element id, check they both return
+ * same element id and delete object 
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat7Step::doTestStepL() in the file commsdat7Step.cpp"));
+	
+	TMDBElementId elementId = 0x01010500;
+
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>(elementId);
+	CMDBField<TInt> dbField2(elementId);
+	TUint32 result = dbField->ElementId();
+    INFO_PRINTF3(_L("field id = %08x.  Should be %08x"), elementId, dbField->ElementId() & KCDMaskHideRes);
+
+	delete dbField;
+	dbField = 0;
+   
+    if (dbField2.ElementId() == result)
+        SetTestStepResult(EPass);	
+	
+    delete dbField;
+
+    return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat8Step::CCommsdat8Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat8Step);
+	}
+
+
+TVerdict CCommsdat8Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id, check the element id and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat8Step::doTestStepL() in the file commsdat8Step.cpp"));
+	
+	TMDBElementId elementId = 0x01010600;
+
+	TMDBElementId result;
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>(elementId);
+	result = dbField->ElementId();
+	INFO_PRINTF3(_L("result = %08x.  Should be %08x"), result, elementId);
+
+    if (result == elementId)
+    	{
+    	SetTestStepResult(EPass);
+    	}
+        
+	delete dbField;
+
+	return TestStepResult();
+	}
+	
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat9Step::CCommsdat9Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat9Step);
+	}
+
+
+TVerdict CCommsdat9Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id, check the record id and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat9Step::doTestStepL() in the file commsdat9Step.cpp"));
+	
+	TMDBElementId elementId = 0x020304f0;
+
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>(elementId);
+	TMDBElementId result = dbField->RecordId();
+
+    INFO_PRINTF3(_L("result = %08x, should be %08x"), result, (elementId & KCDMaskShowRecordId) >> 8);
+
+    TInt id = (elementId & KCDMaskShowRecordId) >> 8;
+    if (result == id)
+    	{
+    	SetTestStepResult(EPass);
+    	}
+        
+	delete dbField;
+	
+	return TestStepResult();
+	}
+	
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat10Step::CCommsdat10Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat10Step);
+	}
+
+
+TVerdict CCommsdat10Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id, check the record id and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat10Step::doTestStepL() in the file commsdat10Step.cpp"));
+	
+	TMDBElementId elementId = 0x01810080;
+
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>(elementId);
+	TMDBElementId recordId = (dbField->ElementId() & KCDMaskShowRecordId);
+	
+    INFO_PRINTF3(_L("recordId = %08x, element id = %08x"), recordId, elementId);
+
+    if (recordId == 0)
+    	{
+        SetTestStepResult(EPass);
+    	}
+
+    delete dbField;
+	
+	return TestStepResult();
+	}
+	
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat11Step::CCommsdat11Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat11Step);
+	}
+
+
+TVerdict CCommsdat11Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id, check the attributes and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat11Step::doTestStepL() in the file commsdat11Step.cpp"));
+	
+	TMDBElementId elementId = 0xfffffe20;
+
+ 	TMDBAttributeFlags result; 
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>(elementId);
+    result = dbField->Attributes();
+
+    INFO_PRINTF2(_L("attributes : result = %08x"), result);
+
+    if (result  == (elementId & KCDMaskShowAttributes))
+    	{
+    	SetTestStepResult(EPass);
+    	}
+        
+	delete dbField;
+
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat12Step::CCommsdat12Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat12Step);
+	}
+
+
+TVerdict CCommsdat12Step::doTestStepL()
+/**
+ * Create a CMDBField object with an element id, check the element id and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat12Step::doTestStepL() in the file commsdat12Step.cpp"));
+	
+	TMDBElementId elementId = 5;
+	TMDBElementId result = 0;  
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>();
+	dbField->SetElementId(elementId);
+	result = dbField->ElementId();
+
+    INFO_PRINTF2(_L("element Id - result = %d"), result);
+
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat13Step::CCommsdat13Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat13Step);
+	}
+
+
+TVerdict CCommsdat13Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id, check the attributes and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat13Step::doTestStepL() in the file commsdat13Step.cpp"));
+	
+	TMDBAttributeFlags attributes = 5;
+	TMDBAttributeFlags result = 0; 
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>();
+	dbField->SetAttributes(attributes);
+	result = dbField->Attributes();
+
+    INFO_PRINTF2(_L("attributes - result = %d"), result);
+
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat14Step::CCommsdat14Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat14Step);
+	}
+
+
+TVerdict CCommsdat14Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id, set attributes, check whether the attributes 
+ * are set and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat14Step::doTestStepL() in the file commsdat14Step.cpp"));
+	
+	TMDBAttributeFlags attributes = 5;
+	TBool result; 
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>();
+	dbField->SetAttributes(attributes);
+	result = dbField->IsSetAttribute(attributes);
+
+    INFO_PRINTF2(_L("Bool result = %b"), result);
+
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------	
+CCommsdat15Step::CCommsdat15Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat15Step);
+	}
+
+
+TVerdict CCommsdat15Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBField object with an element id, set attributes, clear attributes, check whether
+ * the attributes are set and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat15Step::doTestStepL() in the file commsdat15Step.cpp"));
+	
+	TMDBAttributeFlags attributes = ECDHidden;
+	TBool result(EFalse); 
+	CMDBField<TInt> *dbField = new(ELeave) CMDBField<TInt>();
+	dbField->SetAttributes(attributes);
+    result = dbField->IsSetAttribute(attributes);
+    INFO_PRINTF3(_L("Attributes %08x should be set.  Result is %b.  Should be 1"), attributes, result);
+
+    if(result)
+		{
+	    dbField->ClearAttributes(attributes);
+	    result = dbField->IsSetAttribute(attributes);
+
+        INFO_PRINTF3(_L("Attributes %08x should be cleared.  Result is %b.  Should be 0"), attributes, result);
+
+	    if(!result)
+		    {
+    	    SetTestStepResult(EPass);	
+		    }
+        }
+		
+	delete dbField;
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat16Step::CCommsdat16Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat16Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat16Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordLink object and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat16Step::doTestStepL() in the file commsdat16Step.cpp"));
+
+	CMDBRecordLink<CCDNetworkRecord> *dbField = new(ELeave) CMDBRecordLink<CCDNetworkRecord>(); 
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat17Step::CCommsdat17Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat17Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat17Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordLink object with an element id and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat17Step::doTestStepL() in the file commsdat17Step.cpp"));
+
+	TMDBElementId elementId = 5;
+	CMDBRecordLink<CCDNetworkRecord> *dbField = new(ELeave) CMDBRecordLink<CCDNetworkRecord>(elementId); 
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat18Step::CCommsdat18Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat18Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat18Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordLink object with an element id and a null element and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat18Step::doTestStepL() in the file commsdat18Step.cpp"));
+
+	TMDBElementId elementId = 5;
+	CCDNetworkRecord *element = NULL;
+	CMDBRecordLink<CCDNetworkRecord> *dbField = new(ELeave) CMDBRecordLink<CCDNetworkRecord>(elementId,element);  
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat19Step::~CCommsdat19Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat19Step::CCommsdat19Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat19Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat19Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordLink object with an element id and an element and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat19Step::doTestStepL() in the file commsdat19Step.cpp"));
+
+	TMDBElementId elementId = 5;
+	CCDNetworkRecord *element = (CCDNetworkRecord*)CCDRecordBase::RecordFactoryL(KCDTIdNetworkRecord);
+	CMDBRecordLink<CCDNetworkRecord> *dbField = new(ELeave) CMDBRecordLink<CCDNetworkRecord>(elementId,element);  
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat20Step::~CCommsdat20Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat20Step::CCommsdat20Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat20Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat20Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordLink object, check record id and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat20Step::doTestStepL() in the file commsdat20Step.cpp"));
+
+	TMDBElementId elementId = 5;
+
+    INFO_PRINTF2(_L("elementId = %d"), elementId);
+   
+	CMDBRecordLink<CCDNetworkRecord> *dbField = new(ELeave) CMDBRecordLink<CCDNetworkRecord>();  
+	
+	TInt id = (elementId & KCDMaskShowRecordId) >> 8;
+	if (dbField->RecordId() == id)
+    	{
+    	SetTestStepResult(EPass);
+    	}
+    INFO_PRINTF2(_L("reset elementId = %d"), elementId);
+
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat21Step::~CCommsdat21Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat21Step::CCommsdat21Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat21Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat21Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordLink object, check linked record and delete object
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat21Step::doTestStepL() in the file commsdat21Step.cpp"));
+
+	TUint temp(0);
+	
+	CMDBRecordLink<CCDLocationRecord> *dbField = new(ELeave) CMDBRecordLink<CCDLocationRecord>();  
+	if(dbField->iLinkedRecord == NULL)
+		{
+		INFO_PRINTF1(_L("iLinkedRecord is null"));
+		SetTestStepResult(EPass);
+		}
+		
+    INFO_PRINTF2(_L("linked record id = %d"), temp);
+
+
+	delete dbField;
+	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat22Step::~CCommsdat22Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat22Step::CCommsdat22Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat22Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat22Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordSet object and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat22Step::doTestStepL() in the file commsdat22Step.cpp"));
+
+	TMDBElementId elementLinking = 5;
+
+	CMDBRecordSet<CCDNetworkRecord> *dbField = new(ELeave) CMDBRecordSet<CCDNetworkRecord>(elementLinking); 
+	delete dbField;
+
+    SetTestStepResult(EPass);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat23Step::~CCommsdat23Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat23Step::CCommsdat23Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat23Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat23Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBSession object, check the version info and delete it 
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat23Step::doTestStepL() in the file commsdat23Step.cpp"));
+
+	CMDBSession *cmdbSession = CMDBSession::NewL(CMDBSession::LatestVersion());
+	CleanupStack::PushL(cmdbSession);  
+	TVersion versionInUse = cmdbSession->VersionInUse();
+	if(versionInUse.iBuild != CMDBSession::LatestVersion().iBuild )
+		{
+		INFO_PRINTF1(_L("Something wrong with handling of build version information"));
+		}
+	if(versionInUse.iMajor != CMDBSession::LatestVersion().iMajor )
+		{
+		INFO_PRINTF1(_L("Something wrong with handling of major version information"));
+		}
+	if(versionInUse.iMinor != CMDBSession::LatestVersion().iMinor )
+		{
+		INFO_PRINTF1(_L("Something wrong with handling of minor version information"));
+		}
+		
+	if(versionInUse.iBuild == CMDBSession::LatestVersion().iBuild  &&
+	   versionInUse.iMajor == CMDBSession::LatestVersion().iMajor &&
+	   versionInUse.iMinor == CMDBSession::LatestVersion().iMinor)
+		{
+		SetTestStepResult(EPass);
+		}
+    	
+    CleanupStack::PopAndDestroy(cmdbSession);	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat24Step::~CCommsdat24Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat24Step::CCommsdat24Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat24Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat24Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBSession object, check transaction status and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("Opening and closing transactions - CCommsdat24Step::doTestStepL() in the file commsdat24Step.cpp"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+ 	
+	CleanupStack::PushL(cmdbSession); 
+	
+	cmdbSession->OpenTransactionL();
+	TBool inTransaction = cmdbSession->IsInTransaction();
+	if(!inTransaction)
+		{
+		INFO_PRINTF1(_L("Something wrong with opening transaction"));
+		}
+		
+	cmdbSession->RollbackTransactionL();
+	
+	TBool notInTransactionRollback = cmdbSession->IsInTransaction();
+	if(notInTransactionRollback)
+		{
+		INFO_PRINTF1(_L("Something wrong with rolling back transaction"));
+		}
+		
+	cmdbSession->OpenTransactionL();
+	cmdbSession->CommitTransactionL();
+
+	TBool notInTransactionCommit = cmdbSession->IsInTransaction();
+	if(notInTransactionCommit)
+		{
+		INFO_PRINTF1(_L("Something wrong with comitting transaction"));
+		}
+		
+	CleanupStack::PopAndDestroy(cmdbSession);
+
+	if(inTransaction && !notInTransactionRollback && !notInTransactionCommit)
+		{
+		SetTestStepResult(EPass);	
+		}
+    	
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat25Step::~CCommsdat25Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat25Step::CCommsdat25Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat25Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat25Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBSession, set attribute mask and delete it 
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("CCommsdat25Step::doTestStepL() in the file commsdat25Step.cpp"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+ 	
+	CleanupStack::PushL(cmdbSession);  
+	
+	cmdbSession->SetAttributeMask(ECDHidden | ECDPrivate );
+	
+	SetTestStepResult(EPass);		
+	CleanupStack::PopAndDestroy(cmdbSession);
+	return TestStepResult();
+	}
+//----------------------------------------------------------------------------------------------------------------
+#ifndef __TOOLS2__
+// This test is not used on the TOOLS2 platform.
+CCommsdat26Step::~CCommsdat26Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat26Step::CCommsdat26Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat26Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat26Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBSession object, publish properties and  delete it.
+ */
+	{
+    SetTestStepResult(EFail);	
+	INFO_PRINTF1(_L("I am in CCommsdat26Step::doTestStepL() and trying to test Publish Properties"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+ 	
+	CleanupStack::PushL(cmdbSession);  
+	TRAPD(err, cmdbSession->PublishProperties())
+	
+	CleanupStack::PopAndDestroy(cmdbSession);
+	
+	if(err == KErrNone)	
+		{
+		SetTestStepResult(EPass);
+		}
+		
+	return TestStepResult(); 
+	}
+#endif 
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat27Step::~CCommsdat27Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat27Step::CCommsdat27Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat27Step);                                                                                           
+	}
+
+
+TVerdict CCommsdat27Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBSession object, publish properties and  delete it.
+ */
+	{
+    SetTestStepResult(EFail);	
+
+	INFO_PRINTF1(_L("Reading templated value underneath empty record"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);  
+
+	CCDModemBearerRecord *mbRecord = (CCDModemBearerRecord*)CCDRecordBase::RecordFactoryL(KCDTIdModemBearerRecord);
+	CleanupStack::PushL(mbRecord);
+
+	// create record No.1 with 
+	mbRecord->SetRecordId(1);
+    mbRecord->iSpeakerVolPref = 1;
+    
+	mbRecord->StoreL(*cmdbSession);
+	
+	// create TemplateRecord
+	mbRecord->SetRecordId(KCDDefaultRecord);
+    mbRecord->iSpeakerPref = 1;
+    
+	mbRecord->StoreL(*cmdbSession);
+
+	// create field looking at speakerPref
+	CMDBField<TUint32>* speakerPrefField = new(ELeave) CMDBField<TUint32>(KCDTIdSpeakerPref);
+	CleanupStack::PushL(speakerPrefField);
+	// load the speakerPref from record No.1 which is Null value
+    // The data from the template should be loaded giving the value of 1, not null
+	speakerPrefField->SetRecordId(1);
+	speakerPrefField->LoadL(*cmdbSession);
+	
+	if (speakerPrefField->IsNull())
+		{
+		// return with failure because template value was not found
+		return TestStepResult();
+		}
+	
+	if(*speakerPrefField == 1)
+
+		{
+		SetTestStepResult(EPass);		
+		}
+	
+	CleanupStack::PopAndDestroy(speakerPrefField);
+	
+	CleanupStack::PopAndDestroy(mbRecord);
+
+	CleanupStack::PopAndDestroy(cmdbSession);
+
+	return TestStepResult(); 
+	}
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat28Step::~CCommsdat28Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat28Step::CCommsdat28Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat28Step);
+	}
+
+TVerdict CCommsdat28Step::doTestStepL()
+/**
+ * @return - TVerdict code
+ * Create a CMDBRecordLink object and delete it
+ */
+	{
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat28Step::doTestStepL() in the file commsdat28Step.cpp"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+
+//-- Load Linked with tag record test
+
+	CCDIAPRecord *anIAPRecord = (CCDIAPRecord*)CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord);
+	CleanupStack::PushL(anIAPRecord);  
+	
+	anIAPRecord->SetRecordId(1);
+	anIAPRecord->LoadL(*cmdbSession);
+
+    CCDLocationRecord* locationRecord = anIAPRecord->iLocation;
+
+    if (locationRecord)
+        {
+        // Oops Loading the IAP record mustn't automatically create records linked fields too.
+        return TestStepResult();
+        }
+    
+    anIAPRecord->iLocation.LoadL(*cmdbSession);
+	
+    locationRecord = anIAPRecord->iLocation;
+	
+	if(!locationRecord || locationRecord->iPauseAfterDialOut != 1)
+		{
+	    return TestStepResult();
+		}
+	
+
+    CCDServiceRecordBase* serviceRecord = anIAPRecord->iService;
+
+    if (serviceRecord)
+        {
+        // Oops LoadLing the IAP record mustn't automatically create records linked fields too.
+        return TestStepResult();
+        }
+
+    /* Uncomment when validating general links correctly.*/
+    anIAPRecord->iService.LoadL(*cmdbSession);
+
+    serviceRecord = anIAPRecord->iService;
+
+    if (!serviceRecord) // TODO - add the llmnr field to this test ced and check that here
+        {
+        return TestStepResult();
+        }
+
+    // ENHANCE - could also check the type of the service record matches the type named in ServiceType field
+   
+
+	CleanupStack::PopAndDestroy(anIAPRecord);
+    
+
+//-- Find Linked record test
+
+	CCDIAPRecord* IAPRecord1 = static_cast<CCDIAPRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord));
+	CleanupStack::PushL(IAPRecord1);  
+	
+	IAPRecord1->SetRecordId(2);
+	IAPRecord1->LoadL(*cmdbSession);
+
+    IAPRecord1->iLocation.SetRecordId(2);
+    
+	CCDLocationRecord* LocationRecord1 = IAPRecord1->iLocation; // will be NULL at first
+    
+    LocationRecord1 = static_cast<CCDLocationRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdLocationRecord));    
+    
+    if(! LocationRecord1 )
+        {
+        return TestStepResult();
+        }
+
+    LocationRecord1->iPauseAfterDialOut = 2;
+/*
+	if (! IAPRecord1->iLocation.FindL(*cmdbSession))
+        {
+        return TestStepResult();
+        }
+*/	
+	if(LocationRecord1->iPauseAfterDialOut == 2) // TODO - find some other field
+		{
+	    SetTestStepResult(EPass);
+		}
+	
+	CleanupStack::PopAndDestroy(IAPRecord1); // will cleanup all linked fields too.
+
+	CleanupStack::PopAndDestroy(cmdbSession);
+	
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+CCommsdat29Step::~CCommsdat29Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat29Step::CCommsdat29Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat29Step);
+	}
+
+TVerdict CCommsdat29Step::doTestStepL()
+	{
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat29Step::doTestStepL() in the file commsdat29Step.cpp"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+
+//-- Load a CMDBField from the database
+
+		CMDBField<TUint32>* intervalField = new(ELeave) CMDBField<TUint32>(KCDTIdPauseAfterDialOut);
+		CleanupStack::PushL(intervalField);
+		intervalField->SetRecordId(1);
+		intervalField->LoadL(*cmdbSession);
+		
+		CleanupStack::PopAndDestroy(intervalField);
+		CleanupStack::PopAndDestroy(cmdbSession);
+		
+		SetTestStepResult(EPass);
+		
+		return TestStepResult();
+	}
+
+
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat30Step::~CCommsdat30Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat30Step::CCommsdat30Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat30Step);
+	}
+
+//This code here is from the TSYCONFIG.cpp file...
+TVerdict CCommsdat30Step::doTestStepL()
+	{
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat30Step::doTestStepL()"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+	
+	//-------------------------------- part 1 ---------------------------------
+	INFO_PRINTF1(_L("Loading the ModemRecord..."));
+    CCDModemBearerRecord *modemRecord = static_cast<CCDModemBearerRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdModemBearerRecord));
+    CleanupStack::PushL(modemRecord);
+    
+    _LIT(KTsyName,"MM");
+    modemRecord->iTsyName.SetMaxLengthL(KMaxTextLength);
+    modemRecord->iTsyName = KTsyName;
+    
+    TBool searchResult = modemRecord->FindL(*cmdbSession);
+    
+    TUint32 bearerId(0);
+    
+    if (searchResult)
+	    {
+	    INFO_PRINTF1(_L("OK, found the ModemRecord..."));
+	    
+		bearerId = modemRecord->RecordId();	
+		
+		INFO_PRINTF2(_L("so the bearerId : %d"),bearerId);
+	    }
+	else
+		{
+		bearerId = static_cast<TUint32>(KErrNotFound);
+		}
+    
+    CleanupStack::PopAndDestroy(modemRecord);
+    
+    //-------------------------------- part 2 ---------------------------------
+    INFO_PRINTF1(_L("Finding the location ID in the IAP record..."));
+    
+    CCDIAPRecord *iapRecord = static_cast<CCDIAPRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord));
+  	CleanupStack::PushL(iapRecord);
+  	
+  	TUint32 locationId(0);
+  	
+  	iapRecord->iBearer = bearerId;
+  	TBool err = iapRecord->FindL(*cmdbSession);
+  	if (err)
+  		{
+	    INFO_PRINTF1(_L("OK, found the ModemRecord..."));
+	    
+	    locationId = iapRecord->iLocation;
+		
+		INFO_PRINTF2(_L("so the locationId : %d"),locationId);
+  		
+  		}
+  	else
+  		{
+  		locationId = static_cast<TUint32>(KErrNotFound);
+  		}
+  	
+    CleanupStack::PopAndDestroy(iapRecord);
+    
+    TBool goOn = EFalse;
+    
+    if (bearerId == 2 && locationId == 4)
+    	{
+     	goOn = ETrue;
+     	}
+    
+    if (goOn)
+    	{    
+    	goOn = EFalse;
+    	//Finding the IAP record based on the service field
+	    CCDIAPRecord *iapRecord1 = static_cast<CCDIAPRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord));
+	    CleanupStack::PushL(iapRecord1);
+	    
+	    iapRecord1->iService = 2;
+	    err = iapRecord1->FindL(*cmdbSession);
+	    
+	    if (err)
+	    	{
+		    locationId = iapRecord1->iLocation;
+		    bearerId = iapRecord1->iBearer;
+		    
+		    if (bearerId == 2 && locationId == 4)
+		    	{
+		    	//SetTestStepResult(EPass);
+		    	goOn = ETrue;
+		    	}
+	    	}
+	    CleanupStack::PopAndDestroy(iapRecord1);
+    	}
+
+//------------------------------------- part 2 --------------------------------
+    //Fingind an IAP record based on the location id
+    if (goOn)
+    	{
+	    CCDIAPRecord *iapRecord2 = static_cast<CCDIAPRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdIAPRecord));
+	    CleanupStack::PushL(iapRecord2);
+	    
+	    iapRecord2->iLocation = 4;
+	    err = iapRecord2->FindL(*cmdbSession);
+	    
+	    if (err)
+	    	{
+		    TInt service = iapRecord2->iService;
+		    bearerId = iapRecord2->iBearer;
+		    
+		    if (bearerId == 2 && service == 2)
+		    	{
+		    	SetTestStepResult(EPass);
+		    	}
+	    	}
+	    CleanupStack::PopAndDestroy(iapRecord2);
+       	}
+
+    
+	CleanupStack::PopAndDestroy(cmdbSession);
+		
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat31Step::~CCommsdat31Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat31Step::CCommsdat31Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat31Step);
+	}
+
+//This code here is from the TSYCONFIG.cpp file...
+TVerdict CCommsdat31Step::doTestStepL()
+	{
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat31Step::doTestStepL()"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+	
+	INFO_PRINTF1(_L("Loading the ProxiesRecord..."));
+	CCDProxiesRecord *proxiesRecord = static_cast<CCDProxiesRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdProxiesRecord));
+    CleanupStack::PushL(proxiesRecord);
+    
+  	TUint32 portNumber(0);
+  	
+  	proxiesRecord->iService = 4; //the value 4 is from the database...
+  	TBool err = proxiesRecord->FindL(*cmdbSession);
+  	if (err)
+  		{
+	    INFO_PRINTF1(_L("OK, found the ProxiesRecord..."));
+	    
+	    portNumber = proxiesRecord->iPortNumber;
+		
+		INFO_PRINTF2(_L("so the portnumber : %d"),portNumber);
+  		
+  		}
+  	else
+  		{
+  		portNumber = static_cast<TUint32>(KErrNotFound);
+  		}
+  	
+    CleanupStack::PopAndDestroy(proxiesRecord);
+    
+    if (portNumber == 80)
+    	{
+    	SetTestStepResult(EPass);
+    	}
+    
+	CleanupStack::PopAndDestroy(cmdbSession);
+		
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat32Step::~CCommsdat32Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat32Step::CCommsdat32Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat32Step);
+	}
+
+//This code here is from the TSYCONFIG.cpp file...
+TVerdict CCommsdat32Step::doTestStepL()
+	{
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat32Step::doTestStepL()"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+	
+	INFO_PRINTF1(_L("Loading the LanServiceRecord..."));
+	CCDLANServiceRecord *lanserviceRecord = static_cast<CCDLANServiceRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdLANServiceRecord));
+    CleanupStack::PushL(lanserviceRecord);
+    
+  	
+    lanserviceRecord->iServiceExtensionTableRecordId = 1; //the value 1 is from the database...
+  	TBool err = lanserviceRecord->FindL(*cmdbSession);
+  	if (err)
+  		{
+	    INFO_PRINTF1(_L("OK, found the LanServiceRecord..."));
+	    
+	    TPtrC ipAddr(lanserviceRecord->iIpAddr);
+		
+		INFO_PRINTF2(_L("so the ipAddr : %S"),&ipAddr);
+  		
+		_LIT(KIPAddr,"172.16.0.1"); //the value is from the DB...
+		
+	    if (ipAddr == KIPAddr)
+	    	{
+	    	SetTestStepResult(EPass);
+	    	}
+  		}
+  	else
+  		{
+  		INFO_PRINTF1(_L("NOT found the LanServiceRecord..."));
+  		}
+  	
+    CleanupStack::PopAndDestroy(lanserviceRecord);
+    
+	CleanupStack::PopAndDestroy(cmdbSession);
+		
+	return TestStepResult();
+	}
+
+
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat33Step::~CCommsdat33Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat33Step::CCommsdat33Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat33Step);
+	}
+
+TVerdict CCommsdat33Step::doTestStepL()
+	{
+	/* This test test the reading of the link between a WAPAccessPoint and a WAPIPBearer
+	 * record. The reading happens backwards, meaning that based on the recordID of the linked WAPAP
+	 * recrod we try to find the linking WAPIPBearer record.
+	 */
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat33Step::doTestStepL() - Find a WapIpBearer record based on AccessPointId"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+	
+	INFO_PRINTF1(_L("Finding the WapIpBearer record..."));
+	
+    CMDBRecordSet<CCDWAPIPBearerRecord>* recordSet = new(ELeave) CMDBRecordSet<CCDWAPIPBearerRecord>(KCDTIdWAPIPBearerRecord);
+    CleanupStack::PushL(recordSet);
+	
+	
+	CCDWAPIPBearerRecord *wapIPBearer = static_cast<CCDWAPIPBearerRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdWAPIPBearerRecord));
+	CleanupStack::PushL(wapIPBearer);
+    wapIPBearer->iWAPAccessPointId = 4; //the value 4 is from the database...
+    
+    //ownership of 'wapIPBearer' goes to the recordSet...
+    recordSet->iRecords.AppendL(wapIPBearer);
+  	CleanupStack::Pop(wapIPBearer);
+  	
+  	TBool err = recordSet->FindL(*cmdbSession);
+  	if (err)
+  		{
+	    INFO_PRINTF1(_L("OK, found the WapIpBearer Record..."));
+	    
+	    TInt iap = wapIPBearer->iWAPIAP;
+		
+		INFO_PRINTF2(_L("so the iap : %d"),iap);
+  		
+		
+	    if (iap == 4) //4 from the database
+	    	{
+	    	SetTestStepResult(EPass);
+	    	}
+  		}
+  	else
+  		{
+  		INFO_PRINTF1(_L("NOT found the WapIpBearer Record..."));
+  		}
+  	
+  	CleanupStack::PopAndDestroy(recordSet);
+	CleanupStack::PopAndDestroy(cmdbSession);
+		
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat34Step::~CCommsdat34Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat34Step::CCommsdat34Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat34Step);
+	}
+
+TVerdict CCommsdat34Step::doTestStepL()
+	{
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat34Step::doTestStepL()"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+	
+	INFO_PRINTF1(_L("Loading the ProxiesRecord..."));
+	CCDProxiesRecord *proxiRecord = static_cast<CCDProxiesRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdProxiesRecord));
+	CleanupStack::PushL(proxiRecord);
+	
+	proxiRecord->iService = 6;
+	proxiRecord->FindL(*cmdbSession);
+	
+	//---- just to check whether the correct record is read...
+	{
+	CMDBField<TDesC>& proxyServerNameField = proxiRecord->iServerName;
+	CMDBField<TDesC>& recordNameField = proxiRecord->iRecordName;
+	TPtrC serverName(proxyServerNameField);
+	TPtrC recordName(recordNameField);
+	_LIT(KExpectedServerName, "Dummy Server Name");
+	_LIT(KExpectedRecordName, "DefaultRecordName-2");
+	
+	TESTL((serverName.Compare(KExpectedServerName) == 0) && (recordName.Compare(KExpectedRecordName) == 0));
+	}
+	//--------------------------------------------------------
+	
+	_LIT(KModifiedName, "janos_modified");
+	CMDBField<TDesC>& nameField = proxiRecord->iRecordName;
+	TPtrC name(nameField);
+	nameField.SetMaxLengthL(KModifiedName().Length());
+	nameField.SetL(KModifiedName);
+	
+	INFO_PRINTF1(_L("Modifying the ProxiesRecord..."));
+	proxiRecord->ModifyL(*cmdbSession);
+	
+	CleanupStack::PopAndDestroy(proxiRecord);
+		
+	CMDBField<TDesC>* proxyServerNameField = new (ELeave) CMDBField<TDesC>(KCDTIdProxiesRecord | KCDTIdServerName);
+	CleanupStack::PushL(proxyServerNameField);
+	proxyServerNameField->SetRecordId(2);
+	
+	/* This LoadL shouldn't leave. The field is loaded from the template record but the record id should be the 
+	 * correct one - in this case 2. This was overwritten by commsdat to 0 as the field was loaded from the template 
+	 * rec.
+	 */
+	
+	proxyServerNameField->LoadL(*cmdbSession);
+	
+	if (2 == proxyServerNameField->RecordId() &&
+		KCDNotNullFlag == (proxyServerNameField->ElementId() & KCDNotNullFlag))
+		{
+		SetTestStepResult(EPass);
+		}
+	
+	CleanupStack::PopAndDestroy(proxyServerNameField);
+	CleanupStack::PopAndDestroy(cmdbSession);
+	return TestStepResult();
+	}
+
+//----------------------------------------------------------------------------------------------------------------
+
+CCommsdat35Step::~CCommsdat35Step()
+/**
+ * Destructor
+ */
+	{
+	}
+
+CCommsdat35Step::CCommsdat35Step()
+/**
+ * Constructor
+ */
+	{
+	SetTestStepName(KCommsdat35Step);
+	}
+
+/* This test step is for testing the template records. A proxies record is 
+ * loaded from the database and some of the fields are filled up from the template
+ * record. The point is that the fields from the template record mustn't have the 
+ * hidden attribute and has to have the correct record number when loading into the 
+ * record
+ */ 
+TVerdict CCommsdat35Step::doTestStepL()
+	{
+    SetTestStepResult(EFail);	
+    
+	INFO_PRINTF1(_L("CCommsdat35Step::doTestStepL()"));
+
+#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
+	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_2);
+#else
+ 	CMDBSession *cmdbSession = CMDBSession::NewL(KCDVersion1_1);
+#endif
+	CleanupStack::PushL(cmdbSession);
+	
+	INFO_PRINTF1(_L("Loading the ProxiesRecord..."));
+	CCDProxiesRecord *proxiRecord = static_cast<CCDProxiesRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdProxiesRecord));
+	CleanupStack::PushL(proxiRecord);
+	
+	proxiRecord->SetRecordId(2);
+	proxiRecord->LoadL(*cmdbSession);
+	
+	//---- just to check whether the correct record is read...
+	{
+	CMDBField<TDesC>& proxyServerNameField = proxiRecord->iServerName;
+	CMDBField<TDesC>& recordNameField = proxiRecord->iRecordName;
+	TPtrC serverName(proxyServerNameField);
+	TPtrC recordName(recordNameField);
+	_LIT(KExpectedServerName, "Dummy Server Name");
+	_LIT(KExpectedRecordName, "DefaultRecordName-2");
+	
+	TESTL((serverName == KExpectedServerName) && (recordName == KExpectedRecordName));
+	}
+	//--------------------------------------------------------
+	
+	_LIT(KModifiedName, "janos_modified");
+	CMDBField<TDesC>& nameField = proxiRecord->iRecordName;
+	TPtrC name(nameField);
+	nameField.SetMaxLengthL(KModifiedName().Length());
+	nameField.SetL(KModifiedName);
+	
+	/* At this point the 'proxiRecord' still has the 'ProxyServerName' field
+	 * which comes form the template record. As the field is not modified it
+	 * shouldn't be stored into the record. This will be checked after the
+	 * ModifiyL call.
+	 */
+	
+	INFO_PRINTF1(_L("Modifying the ProxiesRecord..."));
+	proxiRecord->ModifyL(*cmdbSession);
+	
+	CleanupStack::PopAndDestroy(proxiRecord);
+	
+	proxiRecord = static_cast<CCDProxiesRecord*>(CCDRecordBase::RecordFactoryL(KCDTIdProxiesRecord));
+	CleanupStack::PushL(proxiRecord);
+	
+	proxiRecord->SetRecordId(2);
+	proxiRecord->LoadL(*cmdbSession);
+	
+	if (2 == proxiRecord->iServerName.RecordId() &&
+		KCDNotNullFlag == (proxiRecord->iServerName.ElementId() & KCDNotNullFlag))
+		{
+		SetTestStepResult(EPass);
+		}
+	
+	CleanupStack::PopAndDestroy(proxiRecord);
+	CleanupStack::PopAndDestroy(cmdbSession);
+	return TestStepResult();
+	}