testexecfw/symbianunittestfw/symbianunittestfw_pub/symbian_unit_test_api/inc/symbianunittestsuite.h
changeset 0 3e07fef1e154
child 1 bbd31066657e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testexecfw/symbianunittestfw/symbianunittestfw_pub/symbian_unit_test_api/inc/symbianunittestsuite.h	Mon Mar 08 15:03:44 2010 +0800
@@ -0,0 +1,107 @@
+/*
+* 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:  
+*
+*/
+
+#ifndef SYMBIANUNITTESTSUITE_H
+#define SYMBIANUNITTESTSUITE_H
+
+// INCLUDES
+#include <symbianunittestinterface.h>
+#include <e32base.h>
+
+// CLASS DECLARATION
+/**
+* A class to collect a number of unit tests to be executed 
+* during a particular test run.
+*
+* @lib symbianunittestfw.lib
+*/
+class CSymbianUnitTestSuite : public CBase, public MSymbianUnitTestInterface
+    {
+    public: // Constructors and destructor
+
+        /**
+        * Creates an empty unit test suite.
+        * @param aName the name of the unit test suite
+        * @return a new instance of CSymbianUnitTestSuite, 
+        *         the ownership is transferred
+        */        
+        IMPORT_C static CSymbianUnitTestSuite* NewL( const TDesC& aName );
+        
+        /**
+        * Creates an empty unit test suite and pushes it to the CleanupStack.
+        * @param aName the name of the unit test suite
+        * @return a new instance of CSymbianUnitTestSuite, 
+        *         the ownership is transferred
+        */        
+        IMPORT_C static CSymbianUnitTestSuite* NewLC( const TDesC& aName );
+        
+        /**
+        * Destructor
+        */        
+        IMPORT_C ~CSymbianUnitTestSuite();
+    
+    public: // From MSymbianUnitTestInterface
+
+        /**
+        * Function called by the framework to execute 
+        * the unit tests contained in this test suite.
+        * There is no need to call this function directly from the unit tests.
+        * 
+        * @param aObserver an observer for the test progress 
+        * @param aResult the test result
+        * @param aFailureSimulation the type of failure simulation to be used
+	* @param aTestCaseNames the test cases to run
+	* @param aTimeout the time out value for test execution
+        */        
+        IMPORT_C void ExecuteL( 
+            MSymbianUnitTestObserver& aObserver,
+            CSymbianUnitTestResult& aResult,
+            MSymbianUnitTestInterface::TFailureSimulation aFailureSimulation,
+	    const CDesCArray& aTestCaseNames,
+	    TInt aTimeout );
+
+        /**
+        * Returns the number of unit tests contained in this unit test suite
+        * @return The number of unit tests in this unit test suite
+        */        
+        IMPORT_C TInt TestCaseCount();
+ 
+        /**
+        * @return The name of this unit test suite
+        */        
+        IMPORT_C const TDesC& Name() const;
+  
+    public: // New functions
+
+        /**
+        * Adds a new unit test to this unit test suite.
+        * @param aTest the test to be added, the ownership is transferred. 
+        */        
+        IMPORT_C void AddL( MSymbianUnitTestInterface* aTest );        
+        
+    private: // Constructors
+    
+        CSymbianUnitTestSuite();
+        void ConstructL( const TDesC& aName );
+    
+    private: // Data
+        
+        RPointerArray< MSymbianUnitTestInterface > iTests;
+        HBufC* iName;
+    };
+
+#endif // SYMBIANUNITTESTSUITE_H