1// 2// MuleUnit: A minimalistic C++ Unit testing framework based on EasyUnit. 3// 4// Copyright (c) 2005-2011 aMule Team ( admin@amule.org / http://www.amule.org ) 5// Copyright (c) 2004-2011 Barthelemy Dagenais ( barthelemy@prologique.com ) 6// 7// This library is free software; you can redistribute it and/or 8// modify it under the terms of the GNU Lesser General Public 9// License as published by the Free Software Foundation; either 10// version 2.1 of the License, or (at your option) any later version. 11// 12// This library is distributed in the hope that it will be useful, 13// but WITHOUT ANY WARRANTY; without even the implied warranty of 14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15// Lesser General Public License for more details. 16// 17// You should have received a copy of the GNU Lesser General Public 18// License along with this library; if not, write to the Free Software 19// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 20// 21 22 23#ifndef TESTREGISTRY_H 24#define TESTREGISTRY_H 25 26#include <list> 27 28namespace muleunit 29{ 30 class Test; 31 class TestCase; 32 33 34typedef std::list<TestCase*> TestCaseList; 35 36 37/** 38 * The TestRegistry is the main class used to register all tests, 39 * and create appropriate TestCase. It can then be used to run 40 * tests and print results. All methods that should be used by 41 * the user are static. 42 */ 43class TestRegistry 44{ 45public: 46 TestRegistry(); 47 ~TestRegistry(); 48 49 /** 50 * Add a test in the registry. If the previous TestCase was not the same 51 * as the one of the current test, a new TestCase is created. 52 * 53 * @param test Test to be added 54 */ 55 static void addTest(Test *test); 56 57 /** 58 * Runs all added tests and prints the results. 59 * 60 * @return False if there were failures. 61 */ 62 static bool runAndPrint(); 63 64private: 65 static TestRegistry& instance(); 66 void add(Test *test); 67 68 bool runTests(); 69 TestCaseList m_testCases; 70}; 71 72} // MuleUnit ns 73#endif // TESTREGISTRY_H 74 75