Skip to content

Commit bcac504

Browse files
feat: add unit test project
1 parent 20d689f commit bcac504

File tree

3 files changed

+196
-0
lines changed

3 files changed

+196
-0
lines changed
Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<CONFIG>
3+
<ProjectOptions>
4+
<Version Value="9"/>
5+
<PathDelim Value="\"/>
6+
<General>
7+
<SessionStorage Value="None"/>
8+
<MainUnit Value="0"/>
9+
<Title Value="tracker_editor_test"/>
10+
<UseAppBundle Value="False"/>
11+
<ResourceType Value="res"/>
12+
</General>
13+
<i18n>
14+
<EnableI18N LFM="False"/>
15+
</i18n>
16+
<VersionInfo>
17+
<StringTable ProductVersion=""/>
18+
</VersionInfo>
19+
<BuildModes Count="1">
20+
<Item1 Name="Default" Default="True"/>
21+
</BuildModes>
22+
<PublishOptions>
23+
<Version Value="2"/>
24+
</PublishOptions>
25+
<RunParams>
26+
<local>
27+
<FormatVersion Value="1"/>
28+
<CommandLineParams Value="-a --format=plain"/>
29+
</local>
30+
</RunParams>
31+
<RequiredPackages Count="2">
32+
<Item1>
33+
<PackageName Value="LazUtils"/>
34+
</Item1>
35+
<Item2>
36+
<PackageName Value="FCL"/>
37+
</Item2>
38+
</RequiredPackages>
39+
<Units Count="3">
40+
<Unit0>
41+
<Filename Value="tracker_editor_test.lpr"/>
42+
<IsPartOfProject Value="True"/>
43+
</Unit0>
44+
<Unit1>
45+
<Filename Value="..\..\test\test_newtrackon.pas"/>
46+
<IsPartOfProject Value="True"/>
47+
</Unit1>
48+
<Unit2>
49+
<Filename Value="..\..\code\newtrackon.pas"/>
50+
<IsPartOfProject Value="True"/>
51+
</Unit2>
52+
</Units>
53+
</ProjectOptions>
54+
<CompilerOptions>
55+
<Version Value="11"/>
56+
<PathDelim Value="\"/>
57+
<Target>
58+
<Filename Value="..\..\..\enduser\test_trackereditor"/>
59+
</Target>
60+
<SearchPaths>
61+
<IncludeFiles Value="$(ProjOutDir)"/>
62+
<OtherUnitFiles Value="..\..\test;..\..\code"/>
63+
<UnitOutputDirectory Value="..\..\..\lib\test_trackereditor\$(TargetCPU)-$(TargetOS)"/>
64+
</SearchPaths>
65+
<Linking>
66+
<Debugging>
67+
<UseHeaptrc Value="True"/>
68+
</Debugging>
69+
</Linking>
70+
</CompilerOptions>
71+
<Debugging>
72+
<Exceptions Count="3">
73+
<Item1>
74+
<Name Value="EAbort"/>
75+
</Item1>
76+
<Item2>
77+
<Name Value="ECodetoolError"/>
78+
</Item2>
79+
<Item3>
80+
<Name Value="EFOpenError"/>
81+
</Item3>
82+
</Exceptions>
83+
</Debugging>
84+
</CONFIG>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
program tracker_editor_test;
2+
3+
{$mode objfpc}{$H+}
4+
5+
uses
6+
Classes, consoletestrunner, fpcunit,
7+
fpcunitreport, test_newtrackon;
8+
9+
type
10+
11+
{ TLazTestRunner }
12+
13+
{ TMyTestRunner }
14+
15+
TMyTestRunner = class(TTestRunner)
16+
protected
17+
// override the protected methods of TTestRunner to customize its behavior
18+
procedure DoTestRun(ATest: TTest); override;
19+
end;
20+
21+
var
22+
Application: TMyTestRunner;
23+
24+
{ TMyTestRunner }
25+
26+
procedure TMyTestRunner.DoTestRun(ATest: TTest);
27+
var
28+
ResultsWriter: TCustomResultsWriter;
29+
TestResult: TTestResult;
30+
begin
31+
ResultsWriter := GetResultsWriter;
32+
ResultsWriter.Filename := FileName;
33+
TestResult := TTestResult.Create;
34+
try
35+
TestResult.AddListener(ResultsWriter);
36+
ATest.Run(TestResult);
37+
ResultsWriter.WriteResult(TestResult);
38+
39+
//if something failed then exit with error: 1
40+
if (TestResult.NumberOfErrors > 0) or (TestResult.NumberOfFailures > 0) then
41+
begin
42+
System.ExitCode := 1;
43+
end;
44+
45+
finally
46+
TestResult.Free;
47+
ResultsWriter.Free;
48+
end;
49+
end;
50+
51+
begin
52+
Application := TMyTestRunner.Create(nil);
53+
Application.Initialize;
54+
Application.Run;
55+
Application.Free;
56+
end.

source/test/test_newtrackon.pas

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
unit test_newtrackon;
2+
3+
{$mode objfpc}{$H+}
4+
5+
interface
6+
7+
uses
8+
Classes, SysUtils, fpcunit, testregistry, newtrackon; //testutils
9+
10+
type
11+
12+
{ TTestNewTrackon }
13+
14+
TTestNewTrackon = class(TTestCase)
15+
private
16+
FNewTrackon: TNewTrackon;
17+
protected
18+
procedure SetUp; override;
19+
procedure TearDown; override;
20+
published
21+
procedure Test_DownloadAPI;
22+
end;
23+
24+
implementation
25+
26+
procedure TTestNewTrackon.Test_DownloadAPI;
27+
begin
28+
AssertTrue('Download the newtrackon API', FNewTrackon.DownloadTrackers);
29+
30+
AssertTrue('TrackerList_All should never be empty',
31+
FNewTrackon.TrackerList_All.Count > 0);
32+
33+
AssertTrue('TrackerList_Live should never be empty',
34+
FNewTrackon.TrackerList_Live.Count > 0);
35+
36+
AssertTrue('TrackerList_Stable should never be empty',
37+
FNewTrackon.TrackerList_Stable.Count > 0);
38+
39+
AssertTrue('TrackerList_Dead should never be empty',
40+
FNewTrackon.TrackerList_Dead.Count > 0);
41+
end;
42+
43+
procedure TTestNewTrackon.SetUp;
44+
begin
45+
FNewTrackon := TNewTrackon.Create;
46+
end;
47+
48+
procedure TTestNewTrackon.TearDown;
49+
begin
50+
FNewTrackon.Free;
51+
end;
52+
53+
initialization
54+
55+
RegisterTest(TTestNewTrackon);
56+
end.

0 commit comments

Comments
 (0)