2 // MuleUnit: A minimalistic C++ Unit testing framework based on EasyUnit.
4 // Copyright (c) 2005-2011 aMule Team ( admin@amule.org / http://www.amule.org )
5 // Copyright (c) 2004-2011 Barthelemy Dagenais ( barthelemy@prologique.com )
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.
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.
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
23 #include "testregistry.h"
27 using namespace muleunit
;
30 TestRegistry::TestRegistry()
35 TestRegistry::~TestRegistry()
37 TestCaseList::iterator it
= m_testCases
.begin();
38 for (; it
!= m_testCases
.end(); ++it
) {
44 void TestRegistry::addTest(Test
*test
)
50 bool TestRegistry::runAndPrint()
52 return instance().runTests();
56 TestRegistry
& TestRegistry::instance()
58 static TestRegistry registry
;
63 void TestRegistry::add(Test
*test
)
65 const wxString tcName
= test
->getTestCaseName();
67 if (m_testCases
.empty() || m_testCases
.back()->getName() != tcName
) {
68 m_testCases
.push_back(new TestCase(tcName
));
71 m_testCases
.back()->addTest(test
);
75 bool TestRegistry::runTests()
79 TestCaseList::iterator it
= m_testCases
.begin();
80 for (; it
!= m_testCases
.end(); ++it
) {
81 success
&= (*it
)->run();