mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-15 00:29:24 +02:00
* New patch from Dean Zobec
- memory leaks fixed in the money example; - no more need to start the test methods with "test"
This commit is contained in:
parent
af35ebb4e7
commit
123f82f176
@ -44,7 +44,7 @@ type
|
|||||||
procedure SetUp; override;
|
procedure SetUp; override;
|
||||||
procedure TearDown; override;
|
procedure TearDown; override;
|
||||||
published
|
published
|
||||||
procedure TestCountTestCases;
|
procedure CheckCountTestCases;
|
||||||
procedure TestExtractMethods;
|
procedure TestExtractMethods;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -160,7 +160,7 @@ end;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
procedure TTestSuiteTest.TestCountTestCases;
|
procedure TTestSuiteTest.CheckCountTestCases;
|
||||||
begin
|
begin
|
||||||
AssertTrue(FSuite.CountTestCases = 2);
|
AssertTrue(FSuite.CountTestCases = 2);
|
||||||
end;
|
end;
|
||||||
@ -173,7 +173,7 @@ begin
|
|||||||
s := '';
|
s := '';
|
||||||
for i := 0 to FSuite.CountTestCases - 1 do
|
for i := 0 to FSuite.CountTestCases - 1 do
|
||||||
s := s + UpperCase(FSuite[i].TestName) + ' ';
|
s := s + UpperCase(FSuite[i].TestName) + ' ';
|
||||||
AssertEquals('Failure in extracting methods:', 'TESTCOUNTTESTCASES TESTEXTRACTMETHODS ', s );
|
AssertEquals('Failure in extracting methods:', 'CHECKCOUNTTESTCASES TESTEXTRACTMETHODS ', s );
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAssertTest.TestEqualsInt;
|
procedure TAssertTest.TestEqualsInt;
|
||||||
|
@ -152,12 +152,12 @@ end;
|
|||||||
|
|
||||||
class function TMoneyBag.CreateWith(m1: IMoney; m2: IMoney): IMoney;
|
class function TMoneyBag.CreateWith(m1: IMoney; m2: IMoney): IMoney;
|
||||||
var
|
var
|
||||||
mb: TMoneyBag;
|
mb: IMoney;
|
||||||
begin
|
begin
|
||||||
mb := TMoneyBag.Create;
|
mb := TMoneyBag.Create;
|
||||||
m1.AppendTo(mb);
|
m1.AppendTo(TMoneyBag(mb._Self));
|
||||||
m2.AppendTo(mb);
|
m2.AppendTo(TMoneyBag(mb._Self));
|
||||||
Result := mb.Simplify;
|
Result := TMoneyBag(mb._Self).Simplify;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
constructor TMoneyBag.Create;
|
constructor TMoneyBag.Create;
|
||||||
@ -166,7 +166,11 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TMoneyBag.Destroy;
|
destructor TMoneyBag.Destroy;
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
begin
|
begin
|
||||||
|
for i := 0 to FMonies.Count - 1 do
|
||||||
|
IInterface(FMonies.items[i])._release;
|
||||||
FMonies.Free;
|
FMonies.Free;
|
||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
@ -121,11 +121,17 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMoneyTest.testIsZero;
|
procedure TMoneyTest.testIsZero;
|
||||||
|
var
|
||||||
|
F0CHF, F12USD, F0USD, FMB0: IMoney;
|
||||||
begin
|
begin
|
||||||
AssertTrue('error: [0 CHF] is to be considered zero!', TMoney.Create(0, 'CHF').IsZero);
|
F0CHF := TMoney.Create(0, 'CHF');
|
||||||
AssertFalse('error: [12 USD] is not to be considered zero!', TMoney.Create(12, 'USD').IsZero);
|
F0USD := TMoney.Create(0, 'USD');
|
||||||
|
F12USD := TMoney.Create(12, 'USD');
|
||||||
|
AssertTrue('error: [0 CHF] is to be considered zero!', F0CHF.IsZero);
|
||||||
|
AssertFalse('error: [12 USD] is not to be considered zero!', F12USD.IsZero);
|
||||||
AssertTrue(FMB1.subtract(FMB1).isZero);
|
AssertTrue(FMB1.subtract(FMB1).isZero);
|
||||||
AssertTrue(TMoneyBag.CreateWith(TMoney.Create(0, 'CHF'), TMoney.Create(0, 'USD')).isZero);
|
FMB0 :=TMoneyBag.CreateWith(F0CHF, F0USD);
|
||||||
|
AssertTrue(FMB0.isZero);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMoneyTest.testMixedSimpleAdd;
|
procedure TMoneyTest.testMixedSimpleAdd;
|
||||||
@ -171,10 +177,14 @@ end;
|
|||||||
procedure TMoneyTest.testSimplify;
|
procedure TMoneyTest.testSimplify;
|
||||||
var
|
var
|
||||||
money: IMoney;
|
money: IMoney;
|
||||||
|
F26CHF, F28CHF, F54CHF: IMoney;
|
||||||
begin
|
begin
|
||||||
money := TMoneyBag.CreateWith(TMoney.Create(26, 'CHF'), TMoney.Create(28, 'CHF'));
|
F26CHF := TMoney.Create(26, 'CHF');
|
||||||
AssertTrue('Expected ' + TMoney.Create(54, 'CHF').toString + ' but was '
|
F28CHF := TMoney.Create(28, 'CHF');
|
||||||
+ money.toString, TMoney.Create(54, 'CHF').equals(money));
|
money := TMoneyBag.CreateWith(F26CHF, F28CHF);
|
||||||
|
F54CHF := TMoney.Create(54, 'CHF');
|
||||||
|
AssertTrue('Expected ' + F54CHF.toString + ' but was '
|
||||||
|
+ money.toString, F54CHF.equals(money));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TMoneyTest.testNormalize2;
|
procedure TMoneyTest.testNormalize2;
|
||||||
|
@ -160,7 +160,6 @@ type
|
|||||||
FTestSuiteName: string;
|
FTestSuiteName: string;
|
||||||
function GetTest(Index: integer): TTest;
|
function GetTest(Index: integer): TTest;
|
||||||
protected
|
protected
|
||||||
function IsTestMethod(AMethodName: string): boolean; virtual;
|
|
||||||
function GetTestName: string; override;
|
function GetTestName: string; override;
|
||||||
function GetTestSuiteName: string; override;
|
function GetTestSuiteName: string; override;
|
||||||
procedure SetTestSuiteName(const aName: string); override;
|
procedure SetTestSuiteName(const aName: string); override;
|
||||||
@ -635,7 +634,6 @@ begin
|
|||||||
GetMethodList(AClass, ml);
|
GetMethodList(AClass, ml);
|
||||||
for i := 0 to ml.Count -1 do
|
for i := 0 to ml.Count -1 do
|
||||||
begin
|
begin
|
||||||
if IsTestMethod(ml.Strings[i]) then
|
|
||||||
AddTest(tc.CreateWith(ml.Strings[i], tc.ClassName));
|
AddTest(tc.CreateWith(ml.Strings[i], tc.ClassName));
|
||||||
end;
|
end;
|
||||||
finally
|
finally
|
||||||
@ -703,11 +701,6 @@ begin
|
|||||||
FTestSuiteName := aName;
|
FTestSuiteName := aName;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TTestSuite.IsTestMethod(AMethodName: string): Boolean;
|
|
||||||
begin
|
|
||||||
Result := Pos('TEST', UpperCase(AMethodName))= 1;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TTestSuite.CountTestCases: integer;
|
function TTestSuite.CountTestCases: integer;
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
|
Loading…
Reference in New Issue
Block a user