4
$Id: suitetest.pp,v 1.4 2005/02/27 12:20:19 michael Exp $
5
This file is part of the Free Component Library (FCL)
6
Copyright (c) 2004 by Dean Zobec
8
Port to Free Pascal of the JUnit framework.
10
See the file COPYING.FPC, included in this distribution,
11
for details about the copyright.
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
17
**********************************************************************}
23
fpcunit, testreport, testregistry;
27
TNoTestCases = class(TTestCase)
33
TNoTestCaseClass = class(TObject)
35
procedure TestSuccess;
39
TOneTestCase = class(TTestCase)
43
procedure OnlyOneTestCase; virtual;
46
TOverrideTestCase = class(TOneTestCase)
48
procedure OnlyOneTestCase; override;
52
TInheritedTestCase = class(TOneTestCase)
57
TSuiteTest = class(TTestCase)
61
procedure Setup; override;
62
procedure Teardown; override;
64
class function Suite: TTestSuite;
66
procedure testNoTestCaseClass;
67
procedure testNoTestCases;
68
procedure testOneTestCase;
69
procedure testInheritedTests;
70
procedure testNotExistingTestCase;
71
procedure testShadowedTests;
72
procedure testAddTestSuiteFromClass;
73
procedure testCreateTestSuiteFromArray;
79
procedure TNoTestCases.NoTestCase;
83
procedure TNoTestCaseClass.TestSuccess;
87
procedure TOneTestCase.NoTestCase;
91
procedure TOneTestCase.OnlyOneTestCase;
95
procedure TOverrideTestCase.OnlyOneTestCase;
99
procedure TInheritedTestCase.Test2;
103
procedure TSuiteTest.Setup;
105
FResult := TTestResult.Create;
108
procedure TSuiteTest.Teardown;
113
class function TSuiteTest.Suite: TTestSuite;
115
Result := TTestSuite.Create('TSuiteTest');
116
Result.AddTest(TSuiteTest.CreateWithName('testNoTestCaseClass'));
117
Result.AddTest(TSuiteTest.CreateWithName('testNoTestCases'));
118
Result.AddTest(TSuiteTest.CreateWithName('testOneTestCase'));
119
Result.AddTest(TSuiteTest.CreateWithName('testInheritedTests'));
120
Result.AddTest(TSuiteTest.CreateWithName('testNotExistingTestCase'));
121
Result.AddTest(TSuiteTest.CreateWithName('testShadowedTests'));
122
Result.AddTest(TSuiteTest.CreateWithName('testAddTestSuiteFromClass'));
123
Result.AddTest(TSuiteTest.CreateWithName('testCreateTestSuiteFromArray'));
126
procedure TSuiteTest.testNoTestCaseClass;
130
ts := TTestSuite.Create(TNoTestCaseClass);
133
AssertEquals(1, FResult.RunTests);
134
AssertTrue(not FResult.WasSuccessful);
137
procedure TSuiteTest.testNoTestCases;
141
ts := TTestSuite.Create(TNoTestCases);
144
AssertTrue(FResult.RunTests = 1);
145
AssertTrue(FResult.NumberOfFailures = 1);
146
AssertTrue(not FResult.WasSuccessful);
149
procedure TSuiteTest.testOneTestCase;
153
ts := TTestSuite.Create(TOneTestCase);
156
AssertTrue(FResult.RunTests = 1);
157
AssertTrue(FResult.NumberOfFailures = 0);
158
AssertTrue(FResult.NumberOfErrors = 0);
159
AssertTrue(FResult.WasSuccessful);
162
procedure TSuiteTest.testInheritedTests;
166
ts := TTestSuite.Create(TInheritedTestCase);
169
AssertEquals(2, FResult.RunTests);
170
AssertTrue(FResult.WasSuccessful);
173
procedure TSuiteTest.testNotExistingTestCase;
177
t := TSuiteTest.CreateWithName('notExistingMethod');
180
AssertTrue(FResult.RunTests = 1);
181
AssertTrue(FResult.NumberOfFailures = 1);
182
AssertTrue(FResult.NumberOfErrors = 0);
185
procedure TSuiteTest.testShadowedTests;
189
ts := TTestSuite.Create(TOverrideTestCase);
192
AssertEquals(1, FResult.RunTests);
195
procedure TSuiteTest.testAddTestSuiteFromClass;
199
ts := TTestSuite.Create;
200
ts.AddTestSuiteFromClass(TOneTestCase);
203
AssertEquals(1, FResult.RunTests);
206
procedure TSuiteTest.testCreateTestSuiteFromArray;
210
ts := TTestSuite.Create([TOneTestCase, TInheritedTestCase]);
212
AssertEquals(3, ts.CountTestCases);
213
AssertEquals(2, ts.Tests.Count);
214
AssertEquals('TOneTestCase', ts[0].TestName);
215
AssertEquals('TInheritedTestCase', ts[1].TestName);
223
RegisterTests([TSuiteTest]);