lowlevellibsandfws/pluginfw/Test_Bed/DataLoggerTest/DataLoggerUnitTest.cpp
changeset 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lowlevellibsandfws/pluginfw/Test_Bed/DataLoggerTest/DataLoggerUnitTest.cpp	Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,363 @@
+// Copyright (c) 1997-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:
+// The unit test class implementations for the CDataLogger class.
+// 
+//
+
+#include "DataLoggerUnitTest.h"
+
+// ______________________________________________________________________________
+//
+_LIT(KDataLoggerCreateAndDestroyUnitTest,"CDataLogger_CreateAndDestroy_UnitTest");
+
+CDataLogger_CreateAndDestroy_UnitTest* CDataLogger_CreateAndDestroy_UnitTest::NewL(CDataLogger& aDataLogger,
+											MUnitTestObserver& aObserver)
+	{
+	CDataLogger_CreateAndDestroy_UnitTest* self = 
+					new(ELeave) CDataLogger_CreateAndDestroy_UnitTest(aDataLogger,
+																aObserver);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self; 
+	}
+
+inline TInt CDataLogger_CreateAndDestroy_UnitTest::RunError(TInt aError)
+	{
+	// The RunL left so chain to the base first and then cleanup
+	TInt error = CUnitTest::RunError(aError);	// Chain to base
+	delete iUTContext;
+	iUTContext = NULL;
+	delete iStateAccessor;
+	iStateAccessor = NULL;
+	/* delete any validators used */
+	delete iCtorValidator;
+	iCtorValidator = NULL;
+	delete iDtorValidator;
+	iDtorValidator = NULL;
+	return error;
+	}
+
+inline CDataLogger_CreateAndDestroy_UnitTest::~CDataLogger_CreateAndDestroy_UnitTest()
+	{
+	// Simply delete our test class instance
+	delete iUTContext;
+	delete iStateAccessor;
+	/* delete any validators used */
+	delete iCtorValidator;
+	delete iDtorValidator;
+	}
+
+inline CDataLogger_CreateAndDestroy_UnitTest::CDataLogger_CreateAndDestroy_UnitTest(CDataLogger& aDataLogger,
+																	MUnitTestObserver& aObserver)
+: CUnitTest(KDataLoggerCreateAndDestroyUnitTest, aDataLogger, aObserver)
+	{
+	//Do nothing
+	}
+
+// Now the Individual transitions need to be added.
+inline void CDataLogger_CreateAndDestroy_UnitTest::ConstructL()
+	{
+	// Perform the base class initialization
+	UnitTestConstructL();
+
+	// Create the Unit test state accessor
+	iStateAccessor = new(ELeave) TDataLogger_StateAccessor;
+	// Construct the Unit test context.
+	iUTContext = new(ELeave) CDataLogger_UnitTestContext(iDataLogger, *iStateAccessor, *this);
+
+	// Add the Transitions in the order they are to run
+	// C'tor first, D'tor last...
+	iCtorValidator = new(ELeave) TDataLogger_Ctor_TransitionValidator(*iUTContext);
+	iDtorValidator = new(ELeave) TDataLogger_Dtor_TransitionValidator(*iUTContext);
+	
+	AddTransitionL(new(ELeave)CDataLogger_NewL_Transition(*iUTContext,*iCtorValidator));
+	AddTransitionL(new(ELeave)CDataLogger_Dtor_Transition(*iUTContext,*iDtorValidator));
+	}
+
+// ______________________________________________________________________________
+//
+_LIT(KDataLoggerDumpMemoryBlockUnitTest,"CDataLogger_DumpMemoryBlock_UnitTest");
+
+CDataLogger_DumpMemoryBlock_UnitTest* CDataLogger_DumpMemoryBlock_UnitTest::NewL(CDataLogger& aDataLogger,
+											MUnitTestObserver& aObserver)
+	{
+	CDataLogger_DumpMemoryBlock_UnitTest* self = 
+					new(ELeave) CDataLogger_DumpMemoryBlock_UnitTest(aDataLogger,
+																aObserver);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self; 
+	}
+
+inline TInt CDataLogger_DumpMemoryBlock_UnitTest::RunError(TInt aError)
+	{
+	// The RunL left so chain to the base first and then cleanup
+	TInt error = CUnitTest::RunError(aError);	// Chain to base
+	delete iUTContext;
+	iUTContext = NULL;
+	delete iStateAccessor;
+	iStateAccessor = NULL;
+	/* delete any validators used */
+	delete iCtorValidator;
+	iCtorValidator = NULL;
+	delete iDumpMemoryBlockValidator;
+	iDumpMemoryBlockValidator = NULL;
+	delete iDtorValidator;
+	iDtorValidator = NULL;
+	return error;
+	}
+
+inline CDataLogger_DumpMemoryBlock_UnitTest::~CDataLogger_DumpMemoryBlock_UnitTest()
+	{
+	// Simply delete our test class instance
+	delete iUTContext;
+	delete iStateAccessor;
+	/* delete any validators used */
+	delete iCtorValidator;
+	delete iDumpMemoryBlockValidator;
+	delete iDtorValidator;
+	}
+
+inline CDataLogger_DumpMemoryBlock_UnitTest::CDataLogger_DumpMemoryBlock_UnitTest(CDataLogger& aDataLogger,
+																	MUnitTestObserver& aObserver)
+: CUnitTest(KDataLoggerDumpMemoryBlockUnitTest, aDataLogger, aObserver)
+	{
+	//Do nothing
+	}
+
+// Now the Individual transitions need to be added.
+inline void CDataLogger_DumpMemoryBlock_UnitTest::ConstructL()
+	{
+	// Perform the base class initialization
+	UnitTestConstructL();
+
+	// Create the Unit test state accessor
+	iStateAccessor = new(ELeave) TDataLogger_StateAccessor;
+	// Construct the Unit test context.
+	iUTContext = new(ELeave) CDataLogger_UnitTestContext(iDataLogger, *iStateAccessor, *this);
+
+	// Set the address of the block to be logged as the address of the literal
+	_LIT8(KDumpedText, "Text dumped by the DumpMemoryBlock method");
+	iUTContext->iAddress = KDumpedText().Ptr();
+
+	// Set the number of bytes to be logged to as the length of the text to be dumped
+	TInt byteLength = KDumpedText().Length();
+	iUTContext->iLength = byteLength;
+
+	// Add the Transitions in the order they are to run
+	// C'tor first, D'tor last...
+	iCtorValidator = new(ELeave) TDataLogger_Ctor_TransitionValidator(*iUTContext);
+	iDumpMemoryBlockValidator = new(ELeave) TDataLogger_DumpMemoryBlock_TransitionValidator(*iUTContext);
+	iDtorValidator = new(ELeave) TDataLogger_Dtor_TransitionValidator(*iUTContext);	
+	
+	AddTransitionL(new(ELeave)CDataLogger_NewL_Transition(*iUTContext,*iCtorValidator));	
+	AddTransitionL(new(ELeave)CDataLogger_DumpMemoryBlock_Transition(*iUTContext,*iDumpMemoryBlockValidator));
+	AddTransitionL(new(ELeave)CDataLogger_Dtor_Transition(*iUTContext,*iDtorValidator));
+	}
+
+// ______________________________________________________________________________
+//
+_LIT(KDataLoggerLogInformationUnitTest,"CDataLogger_LogInformation_UnitTest");
+
+CDataLogger_LogInformation_UnitTest* CDataLogger_LogInformation_UnitTest::NewL(CDataLogger& aDataLogger,
+											MUnitTestObserver& aObserver)
+	{
+	CDataLogger_LogInformation_UnitTest* self = 
+					new(ELeave) CDataLogger_LogInformation_UnitTest(aDataLogger,
+																aObserver);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self; 
+	}
+
+inline TInt CDataLogger_LogInformation_UnitTest::RunError(TInt aError)
+	{
+	// The RunL left so chain to the base first and then cleanup
+	TInt error = CUnitTest::RunError(aError);	// Chain to base
+	delete iUTContext;
+	iUTContext = NULL;
+	delete iStateAccessor;
+	iStateAccessor = NULL;
+	/* delete any validators used */
+	delete iCtorValidator;
+	iCtorValidator = NULL;
+	delete iLogInformationValidator;
+	iLogInformationValidator = NULL;
+	delete iLogInformationNarrowValidator;
+	iLogInformationNarrowValidator =NULL;
+	delete iLogInformationWithParametersValidator;
+	iLogInformationWithParametersValidator = NULL;
+	delete iLogInformationWithParametersNarrowValidator;
+	iLogInformationWithParametersNarrowValidator = NULL;
+	delete iDtorValidator;
+	iDtorValidator = NULL;
+
+	return error;
+	}
+
+inline CDataLogger_LogInformation_UnitTest::~CDataLogger_LogInformation_UnitTest()
+	{
+	// Simply delete our test class instance
+	delete iUTContext;
+	delete iStateAccessor;
+	/* delete any validators used */
+	delete iCtorValidator;
+	delete iLogInformationValidator;
+	delete iLogInformationNarrowValidator;
+	delete iLogInformationWithParametersValidator;
+	delete iLogInformationWithParametersNarrowValidator;
+	delete iDtorValidator;
+	}
+
+inline CDataLogger_LogInformation_UnitTest::CDataLogger_LogInformation_UnitTest(CDataLogger& aDataLogger,
+																	MUnitTestObserver& aObserver)
+: CUnitTest(KDataLoggerLogInformationUnitTest, aDataLogger, aObserver)
+	{
+	//Do nothing
+	}
+
+// Now the Individual transitions need to be added.
+inline void CDataLogger_LogInformation_UnitTest::ConstructL()
+	{
+	// Perform the base class initialization
+	UnitTestConstructL();
+
+	// Create the Unit test state accessor
+	iStateAccessor = new(ELeave) TDataLogger_StateAccessor;
+	// Construct the Unit test context.
+	iUTContext = new(ELeave) CDataLogger_UnitTestContext(iDataLogger, *iStateAccessor, *this);
+
+	// Wide descriptor to be used as passed in parameter in LogInformationWithParameters transition
+	_LIT(KTextWide,"Parameter - wide descriptor version");
+	HBufC* hptr1 = KTextWide().AllocL(); 
+	iUTContext->iArg = hptr1;
+
+	// Narrow descriptor to be used as passed in parameter in LogInformationWithParametersNarrow transition
+	_LIT8(KTextNarrow,"Parameter - narrow descriptor version"); 
+	HBufC8* hptr2 = KTextNarrow().AllocL();; 
+	iUTContext->iArgNarrow = hptr2;
+
+	// Add the Transitions in the order they are to run
+	// C'tor first, D'tor last...
+	iCtorValidator = new(ELeave) TDataLogger_Ctor_TransitionValidator(*iUTContext);
+	iLogInformationValidator = new(ELeave) TDataLogger_LogInformation_TransitionValidator(*iUTContext);
+	iLogInformationNarrowValidator = new(ELeave) TDataLogger_LogInformationNarrow_TransitionValidator(*iUTContext);
+	iLogInformationWithParametersValidator = new(ELeave) TDataLogger_LogInformationWithParameters_TransitionValidator(*iUTContext);
+	iLogInformationWithParametersNarrowValidator = new(ELeave) TDataLogger_LogInformationWithParametersNarrow_TransitionValidator(*iUTContext);
+	iDtorValidator = new(ELeave) TDataLogger_Dtor_TransitionValidator(*iUTContext);
+
+	AddTransitionL(new(ELeave)CDataLogger_NewL_Transition(*iUTContext,*iCtorValidator));
+	AddTransitionL(new(ELeave)CDataLogger_LogInformation_Transition(*iUTContext,*iLogInformationValidator));
+	AddTransitionL(new(ELeave)CDataLogger_LogInformationNarrow_Transition(*iUTContext,*iLogInformationNarrowValidator));
+	AddTransitionL(new(ELeave)CDataLogger_LogInformationWithParameters_Transition(*iUTContext,*iLogInformationWithParametersValidator));
+	AddTransitionL(new(ELeave)CDataLogger_LogInformationWithParametersNarrow_Transition(*iUTContext,*iLogInformationWithParametersNarrowValidator));
+	AddTransitionL(new(ELeave)CDataLogger_Dtor_Transition(*iUTContext,*iDtorValidator));
+	}
+
+// ______________________________________________________________________________
+//
+_LIT(KDataLoggerReportInformationUnitTest,"CDataLogger_ReportInformation_UnitTest");
+
+CDataLogger_ReportInformation_UnitTest* CDataLogger_ReportInformation_UnitTest::NewL(CDataLogger& aDataLogger,
+											MUnitTestObserver& aObserver)
+	{
+	CDataLogger_ReportInformation_UnitTest* self = 
+					new(ELeave) CDataLogger_ReportInformation_UnitTest(aDataLogger,
+																aObserver);
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	return self; 
+	}
+
+inline TInt CDataLogger_ReportInformation_UnitTest::RunError(TInt aError)
+	{
+	// The RunL left so chain to the base first and then cleanup
+	TInt error = CUnitTest::RunError(aError);	// Chain to base
+	delete iUTContext;
+	iUTContext = NULL;
+	delete iStateAccessor;
+	iStateAccessor = NULL;
+	/* delete any validators used */
+	delete iCtorValidator;
+	iCtorValidator = NULL;
+	delete iReportInformationValidator;
+	iReportInformationValidator = NULL;
+	delete iReportInformationWithParametersValidator;
+	iReportInformationWithParametersValidator = NULL;
+	delete iDtorValidator;
+	iDtorValidator = NULL;
+
+	return error;
+	}
+
+inline CDataLogger_ReportInformation_UnitTest::~CDataLogger_ReportInformation_UnitTest()
+	{
+	// Simply delete our test class instance
+	delete iUTContext;
+	delete iStateAccessor;
+	/* delete any validators used */
+	delete iCtorValidator;
+	delete iReportInformationValidator;
+	delete iReportInformationWithParametersValidator;
+	delete iDtorValidator;
+	}
+
+inline CDataLogger_ReportInformation_UnitTest::CDataLogger_ReportInformation_UnitTest(CDataLogger& aDataLogger,
+																	MUnitTestObserver& aObserver)
+: CUnitTest(KDataLoggerReportInformationUnitTest, aDataLogger, aObserver)
+	{
+	//Do nothing
+	}
+
+// Now the Individual transitions need to be added.
+inline void CDataLogger_ReportInformation_UnitTest::ConstructL()
+	{
+	// Perform the base class initialization
+	UnitTestConstructL();
+
+	// Create the Unit test state accessor
+	iStateAccessor = new(ELeave) TDataLogger_StateAccessor;
+	// Construct the Unit test context.
+	iUTContext = new(ELeave) CDataLogger_UnitTestContext(iDataLogger, *iStateAccessor, *this);
+
+	// Text to be inserted into the report by the ReportInformation method
+	_LIT(KReportComment, "This is a report comment");
+	iUTContext->iReportComment = &KReportComment();
+
+	// The text to be inserted into the report by the ReportInformationWithParameters method
+	 _LIT(KFormatReport, "This report text will be followed by a parameter: %S");
+	iUTContext->iFormatReport = &KFormatReport();
+
+	// The parameter to be appended to the end of the text above by the ReportInformationWithParameters method
+	_LIT(KReportArg, "This is the report parameter");
+	iUTContext->iReportArg = &KReportArg();
+
+	// Add the Transitions in the order they are to run
+	// C'tor first, D'tor last...
+	iCtorValidator = new(ELeave) TDataLogger_Ctor_TransitionValidator(*iUTContext);
+	iReportInformationValidator = new(ELeave) TDataLogger_ReportInformation_TransitionValidator(*iUTContext);
+	iReportInformationWithParametersValidator = new(ELeave) TDataLogger_ReportInformationWithParameters_TransitionValidator(*iUTContext);
+	iDtorValidator = new(ELeave) TDataLogger_Dtor_TransitionValidator(*iUTContext);
+		
+	AddTransitionL(new(ELeave)CDataLogger_NewL_Transition(*iUTContext,*iCtorValidator));
+	AddTransitionL(new(ELeave)CDataLogger_ReportInformation_Transition(*iUTContext,*iReportInformationValidator));
+	AddTransitionL(new(ELeave)CDataLogger_ReportInformationWithParameters_Transition(*iUTContext,*iReportInformationWithParametersValidator));
+	AddTransitionL(new(ELeave)CDataLogger_Dtor_Transition(*iUTContext,*iDtorValidator));
+	}
+
+