00001 //------------------------------------------------------------------------------ 00002 // Lamp : Open source game middleware 00003 // Copyright (C) 2004 Junpei Ohtani ( Email : junpee@users.sourceforge.jp ) 00004 // 00005 // This library is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU Lesser General Public 00007 // License as published by the Free Software Foundation; either 00008 // version 2.1 of the License, or (at your option) any later version. 00009 // 00010 // This library is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00013 // Lesser General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU Lesser General Public 00016 // License along with this library; if not, write to the Free Software 00017 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00018 //------------------------------------------------------------------------------ 00019 00020 /** @file 00021 * テストスィート実装 00022 * @author Junpee 00023 */ 00024 00025 #include <LampBasic.h> 00026 #include "LampUnit/TestSuite.h" 00027 #include "LampUnit/TestResult.h" 00028 00029 namespace LampUnit{ 00030 00031 //------------------------------------------------------------------------------ 00032 // コンストラクタ 00033 TestSuite::TestSuite(Lamp::String name) : 00034 name_(name), string_("Suite " + name_){ 00035 } 00036 //------------------------------------------------------------------------------ 00037 // デストラクタ 00038 TestSuite::~TestSuite(){ 00039 int count = tests_.getCount(); 00040 for(int i = 0; i < count; i++){ delete tests_[i]; } 00041 tests_.clear(); 00042 } 00043 //------------------------------------------------------------------------------ 00044 // テストの追加 00045 void TestSuite::addTest(Test* test){ 00046 tests_.add(test); 00047 } 00048 //------------------------------------------------------------------------------ 00049 // テストを実行する 00050 void TestSuite::run(TestResult* result){ 00051 int count = tests_.getCount(); 00052 for(int i = 0; i < count; i++){ 00053 if(result->shouldStop()){ break; } 00054 tests_[i]->run(result); 00055 } 00056 } 00057 //------------------------------------------------------------------------------ 00058 // テストケースの個数を取得 00059 int TestSuite::getCountTestCases() const{ 00060 int testCount = 0; 00061 int count = tests_.getCount(); 00062 for(int i = 0; i < count; i++){ 00063 testCount += tests_[i]->getCountTestCases(); 00064 } 00065 return testCount; 00066 } 00067 //------------------------------------------------------------------------------ 00068 } // End of namespace LampUnit 00069 //------------------------------------------------------------------------------