source: trunk/unittests/TestAssert.pas

Last change on this file was 384, checked in by RBRi, 9 years ago

move the unit test to a more central place

File size: 5.1 KB
Line 
1Unit TestAssert;
2
3// NewView - a new OS/2 Help Viewer
4// Copyright 2006-2009 Ronald Brill (rbri at rbri dot de)
5// This software is released under the GNU Public License - see readme.txt
6
7// Assert implementation for UnitTests
8
9Interface
10
11uses
12 SysUtils;
13
14 TYPE EAssertFailed=CLASS(Exception);
15
16 PROCEDURE assertEqualsString(aTestDescription : String; anExpectedValue : String; aRealValue : String);
17 PROCEDURE assertEqualsIgnoreCaseString(aTestDescription : String; anExpectedValue : String; aRealValue : String);
18 PROCEDURE assertEqualsAnsiString(aTestDescription : String; anExpectedValue : AnsiString; aRealValue : AnsiString);
19 PROCEDURE assertEqualsInt(aTestDescription : String; anExpectedValue : INTEGER; aRealValue : INTEGER);
20 PROCEDURE assertEqualsLongWord(aTestDescription : String; anExpectedValue : LongWord; aRealValue : LongWord);
21 PROCEDURE assertTrue(aTestDescription : String; aRealValue : Boolean);
22 PROCEDURE assertFalse(aTestDescription : String; aRealValue : Boolean);
23
24
25Implementation
26
27 PROCEDURE assertEqualsString(aTestDescription : String; anExpectedValue : String; aRealValue : String);
28 VAR
29 tmpMessage : AnsiString;
30 tmpLineBreak : String;
31 BEGIN
32 if (aRealValue <> anExpectedValue) then
33 begin
34 tmpLineBreak := '';
35 if Length(anExpectedValue) > 13 then tmpLineBreak := chr(13) + chr(10) + ' ';
36
37 tmpMessage := 'Failed: ' + aTestDescription + ' Expected: ''' + tmpLineBreak;
38 tmpMessage := tmpMessage + anExpectedValue;
39 tmpMessage := tmpMessage + ''' but it was: ''' + tmpLineBreak;
40 tmpMessage := tmpMessage + aRealValue;
41 tmpMessage := tmpMessage + '''';
42 raise EAssertFailed.Create(tmpMessage);
43 end;
44 END;
45
46
47 PROCEDURE assertEqualsIgnoreCaseString(aTestDescription : String; anExpectedValue : String; aRealValue : String);
48 VAR
49 tmpMessage : AnsiString;
50 tmpLineBreak : String;
51 tmpRealValueUC : String;
52 tmpExpectedValueUC : String;
53 BEGIN
54 tmpRealValueUC := UpperCase(aRealValue);
55 tmpExpectedValueUC := UpperCase(anExpectedValue);
56 if (tmpRealValueUC <> tmpExpectedValueUC) then
57 begin
58 tmpLineBreak := '';
59 if Length(tmpExpectedValueUC) > 13 then tmpLineBreak := chr(13) + chr(10) + ' ';
60
61 tmpMessage := 'Failed: ' + aTestDescription + ' Expected: ''' + tmpLineBreak;
62 tmpMessage := tmpMessage + tmpExpectedValueUC;
63 tmpMessage := tmpMessage + ''' but it was: ''' + tmpLineBreak;
64 tmpMessage := tmpMessage + tmpRealValueUC;
65 tmpMessage := tmpMessage + '''';
66 raise EAssertFailed.Create(tmpMessage);
67 end;
68 END;
69
70
71 PROCEDURE assertEqualsAnsiString(aTestDescription : String; anExpectedValue : AnsiString; aRealValue : AnsiString);
72 VAR
73 tmpMessage : AnsiString;
74 BEGIN
75 if (aRealValue <> anExpectedValue) then
76 begin
77 tmpMessage := 'Failed: ' + aTestDescription + ' Expected: ''';
78 tmpMessage := tmpMessage + anExpectedValue;
79 tmpMessage := tmpMessage + ''' but it was: ''';
80 tmpMessage := tmpMessage + aRealValue;
81 tmpMessage := tmpMessage + '''';
82 raise EAssertFailed.Create(tmpMessage);
83 end;
84 END;
85
86
87 PROCEDURE assertEqualsInt(aTestDescription : String; anExpectedValue : INTEGER; aRealValue : INTEGER);
88 VAR
89 tmpMessage : String;
90 tmpIntString : String;
91 BEGIN
92 if (aRealValue <> anExpectedValue) then
93 begin
94 tmpMessage := 'Failed: ' + aTestDescription + ' Expected: ''';
95 Str(anExpectedValue, tmpIntString);
96 tmpMessage := tmpMessage + tmpIntString;
97 tmpMessage := tmpMessage + ''' but it was: ''';
98 Str(aRealValue, tmpIntString);
99 tmpMessage := tmpMessage + tmpIntString;
100 tmpMessage := tmpMessage + '''';
101 raise EAssertFailed.Create(tmpMessage);
102 end;
103 END;
104
105
106 PROCEDURE assertEqualsLongWord(aTestDescription : String; anExpectedValue : LongWord; aRealValue : LongWord);
107 VAR
108 tmpMessage : String;
109 tmpIntString : String;
110 BEGIN
111 if (aRealValue <> anExpectedValue) then
112 begin
113 tmpMessage := 'Failed: ' + aTestDescription + ' Expected: ''';
114 Str(anExpectedValue, tmpIntString);
115 tmpMessage := tmpMessage + tmpIntString;
116 tmpMessage := tmpMessage + ''' but it was: ''';
117 Str(aRealValue, tmpIntString);
118 tmpMessage := tmpMessage + tmpIntString;
119 tmpMessage := tmpMessage + '''';
120 raise EAssertFailed.Create(tmpMessage);
121 end;
122 END;
123
124
125 PROCEDURE assertTrue(aTestDescription : String; aRealValue : Boolean);
126 VAR
127 tmpMessage : String;
128 BEGIN
129 if (not aRealValue) then
130 begin
131 tmpMessage := 'Failed: ' + aTestDescription + ' Expected: ''True';
132 tmpMessage := tmpMessage + ''' but it was: ''False''';
133 raise EAssertFailed.Create(tmpMessage);
134 end;
135 END;
136
137
138 PROCEDURE assertFalse(aTestDescription : String; aRealValue : Boolean);
139 VAR
140 tmpMessage : String;
141 BEGIN
142 if (aRealValue) then
143 begin
144 tmpMessage := 'Failed: ' + aTestDescription + ' Expected: ''False';
145 tmpMessage := tmpMessage + ''' but it was: ''True''';
146 raise EAssertFailed.Create(tmpMessage);
147 end;
148 END;
149
150end.
Note: See TracBrowser for help on using the repository browser.