sl@0: // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0: // All rights reserved.
sl@0: // This component and the accompanying materials are made available
sl@0: // under the terms of "Eclipse Public License v1.0"
sl@0: // which accompanies this distribution, and is available
sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0: //
sl@0: // Initial Contributors:
sl@0: // Nokia Corporation - initial contribution.
sl@0: //
sl@0: // Contributors:
sl@0: //
sl@0: // Description:
sl@0: // Test the CDiscoverer class using the test bed.
sl@0: // 
sl@0: //
sl@0: 
sl@0: #include "DiscovererUnitTest.h"
sl@0: #include "ComponentTester.h"
sl@0: 
sl@0: // ______________________________________________________________________________
sl@0: //
sl@0: /**
sl@0: 	@internalComponent
sl@0: 
sl@0: 	Comments : Test the CDiscoverer class.
sl@0:  */
sl@0: class CDiscoverer_ComponentTest : public CComponentTester
sl@0: 	{
sl@0: public:
sl@0: 	/**
sl@0: 		@fn				NewLC(CDataLogger& aDataLogger,
sl@0: 							 MComponentTestObserver& aObserver)
sl@0: 		Intended Usage	: Standard two-phase construction which leaves nothing on the
sl@0: 						cleanup stack.
sl@0: 		Error Condition	: Leaves with the error code.
sl@0: 		@leave			KErrNoMemory
sl@0: 		@since			7.0
sl@0: 		@param			aDataLogger The output logging object.
sl@0: 		@param			aObserver The observer of this component test.
sl@0: 		@return			CDiscoverer_CreateAndDestroy_UnitTest* The constructed object.
sl@0: 		@pre 			None.
sl@0: 		@post			CDiscoverer_ComponentTest is fully constructed.
sl@0: 	*/
sl@0: 	static CDiscoverer_ComponentTest* NewLC(CDataLogger& aDataLogger, 
sl@0: 							MComponentTestObserver& aObserver);
sl@0: 
sl@0: private:
sl@0: 	/**
sl@0: 		@fn				CDiscoverer_ComponentTest(CDataLogger& aDataLogger,
sl@0: 											MComponentTestObserver& aObserver)
sl@0: 		Intended Usage	: Standard c'tor method.
sl@0: 		Error Condition	: None.
sl@0: 		@since			7.0
sl@0: 		@param			aDataLogger The logging object.
sl@0: 		@param			aObserver The observer of this component test.
sl@0: 		@pre 			None.
sl@0: 		@post			CDiscoverer_ComponentTest is fully constructed.
sl@0: 	*/
sl@0: 	inline CDiscoverer_ComponentTest(CDataLogger& aDataLogger,
sl@0: 												MComponentTestObserver& aObserver);
sl@0: 	/**
sl@0: 		@fn				void ConstructL()
sl@0: 		Intended Usage	: Second phase of safe two phase construction, 
sl@0: 						to complete the object initialisation.
sl@0: 		Error Condition	: Leaves with an error code.
sl@0: 		@leave			KErrNoMemory.
sl@0: 		@since			7.0
sl@0: 		@return			None 
sl@0: 		@pre 			CDiscoverer_ComponentTest is fully constructed.
sl@0: 		@post			CDiscoverer_ComponentTest is fully initialised.
sl@0: 	*/
sl@0: 	inline void ConstructL();
sl@0: 
sl@0: 	};	// CDiscoverer_ComponentTest
sl@0: 
sl@0: // ______________________________________________________________________________
sl@0: //
sl@0: inline CDiscoverer_ComponentTest* CDiscoverer_ComponentTest::NewLC(CDataLogger& aDataLogger, MComponentTestObserver& aObserver)
sl@0: 	{
sl@0: 	CDiscoverer_ComponentTest* self = new (ELeave) CDiscoverer_ComponentTest(aDataLogger, aObserver);
sl@0: 	CleanupStack::PushL(self);
sl@0: 	self->ConstructL();
sl@0: 	return self;
sl@0: 	}
sl@0: 
sl@0: inline CDiscoverer_ComponentTest::CDiscoverer_ComponentTest(CDataLogger& aDataLogger,
sl@0: 									MComponentTestObserver& aObserver)
sl@0: : CComponentTester(aDataLogger, aObserver)
sl@0: 	{
sl@0: 	// Do nothing here.
sl@0: 	}
sl@0: 
sl@0: inline void CDiscoverer_ComponentTest::ConstructL()
sl@0: 	{
sl@0: 	ComponentTesterConstructL();
sl@0: 	AddUnitTestL(CDiscoverer_CreateAndDestroy_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_UnmountDrive_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_MountDrive_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_IsValidEntryL_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_ProcessEntryL_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_ScanDirectory_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_ScanDirectoryCancel_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_ScanDirectoryIncrement_UnitTest::NewL(iDataLogger, *this));
sl@0: 
sl@0: 	AddUnitTestL(CDiscoverer_CompleteNotificationProcessing_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_Notification_UnitTest::NewL(iDataLogger, *this));
sl@0: 	AddUnitTestL(CDiscoverer_SuspendResume_UnitTest::NewL(iDataLogger, *this));
sl@0: 	}
sl@0: 
sl@0: // ______________________________________________________________________________
sl@0: //
sl@0: EXPORT_C CComponentTester* NewComponentTestLC(CDataLogger& aDataLogger,
sl@0: 											  MComponentTestObserver&	aComponentTestObserver)
sl@0: 	{
sl@0: 	return CDiscoverer_ComponentTest::NewLC(aDataLogger, aComponentTestObserver);
sl@0: 	}
sl@0: 
sl@0: // ___________________________________________________________________________
sl@0: //
sl@0: // This section of the module simply includes the exported test harness template which 
sl@0: // makes this a "whole" CPP file with a E32Main entry point below. The test MMP 
sl@0: // project file can then produce a EXE for the test project instead of a DLL.
sl@0: 
sl@0: #include <ecom/test_bed/testharnesstemplate.h>
sl@0: 
sl@0: GLDEF_C TInt E32Main()
sl@0: 	{
sl@0: 	return E32Main_TestHarness(NewComponentTestLC);
sl@0: 	}
sl@0: