DUnitCompatibleInterface.inc 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. {%MainUnit fpcunit.pp}
  2. {$IFDEF read_interface}
  3. class procedure Check(pValue: boolean; pMessage: string = '');
  4. class procedure CheckEquals(expected, actual: extended; msg: string = ''); overload;
  5. class procedure CheckEquals(expected, actual: extended; delta: extended; msg: string = ''); overload;
  6. class procedure CheckEquals(expected, actual: string; msg: string = ''); overload;
  7. class procedure CheckEquals(expected, actual: unicodestring; msg: string = ''); overload;
  8. class procedure CheckEquals(expected, actual: integer; msg: string = ''); overload;
  9. class procedure CheckEquals(expected, actual: boolean; msg: string = ''); overload;
  10. class procedure CheckEquals(expected, actual: TClass; msg: string = ''); overload;
  11. class procedure CheckEquals(expected, actual: int64; msg: string = ''); overload;
  12. class procedure CheckEquals(expected, actual: QWord; msg: string = ''); overload;
  13. class procedure CheckNotEquals(expected, actual: string; msg: string = ''); overload;
  14. class procedure CheckNotEquals(expected, actual: unicodestring; msg: string = ''); overload;
  15. class procedure CheckNotEquals(expected, actual: integer; msg: string = ''); overload; virtual;
  16. class procedure CheckNotEquals(expected, actual: boolean; msg: string = ''); overload; virtual;
  17. class procedure CheckNotEquals(expected: extended; actual: extended; delta: extended = 0; msg: string = ''); overload; virtual;
  18. class procedure CheckNotEquals(expected, actual: int64; msg: string = ''); overload; virtual;
  19. class procedure CheckNotEquals(expected, actual: QWord; msg: string = ''); overload; virtual;
  20. class procedure CheckNull(obj: IUnknown; msg: string = ''); overload;
  21. class procedure CheckNull(obj: TObject; msg: string = ''); overload;
  22. class procedure CheckNotNull(obj: TObject; msg: string = ''); overload;
  23. class procedure CheckNotNull(obj: IUnknown; msg: string = ''); overload; virtual;
  24. class procedure CheckIs(obj :TObject; pClass: TClass; msg: string = ''); overload;
  25. class procedure CheckSame(expected, actual: TObject; msg: string = ''); overload;
  26. class procedure CheckTrue(condition: Boolean; msg: string = '');
  27. class procedure CheckFalse(condition: Boolean; msg: string = '');
  28. class procedure CheckException(AMethod: TRunMethod; AExceptionClass: ExceptClass; msg: string = '');
  29. class function EqualsErrorMessage(const expected, actual: string; const ErrorMsg: string): string;
  30. class function NotEqualsErrorMessage(const expected, actual: string; const ErrorMsg: string): string;
  31. class function Suite: TTest;
  32. {
  33. *** TODO ***
  34. procedure CheckEqualsBin(expected, actual: longword; msg: string = ''; digits: integer=32); virtual;
  35. procedure CheckEqualsHex(expected, actual: longword; msg: string = ''; digits: integer=8); virtual;
  36. procedure CheckNotEqualsBin(expected, actual: longword; msg: string = ''; digits: integer=32); virtual;
  37. procedure CheckNotEqualsHex(expected, actual: longword; msg: string = ''; digits: integer=8); virtual;
  38. procedure CheckNotNull(obj :IUnknown; msg :string = ''); overload; virtual;
  39. procedure CheckSame(expected, actual: IUnknown; msg: string = ''); overload; virtual;
  40. procedure CheckException(AMethod: TTestMethod; AExceptionClass: TClass; msg :string = '');
  41. procedure CheckInherits(expected, actual: TClass; msg: string = ''); overload; virtual;
  42. }
  43. {$ENDIF read_interface}
  44. {$IFDEF read_implementation}
  45. class procedure TAssert.Check(pValue: boolean; pMessage: string);
  46. begin
  47. AssertTrue(pMessage, pValue);
  48. end;
  49. class procedure TAssert.CheckEquals(expected, actual: extended; msg: string);
  50. begin
  51. CheckEquals(expected, actual, 0, msg);
  52. end;
  53. class procedure TAssert.CheckEquals(expected, actual: extended;
  54. delta: extended; msg: string);
  55. begin
  56. AssertEquals(msg, expected, actual, delta);
  57. end;
  58. class procedure TAssert.CheckEquals(expected, actual: string; msg: string);
  59. begin
  60. AssertEquals(msg, expected, actual);
  61. end;
  62. class procedure TAssert.CheckEquals(expected, actual: unicodestring; msg: string);
  63. begin
  64. AssertEquals(msg, expected, actual);
  65. end;
  66. class procedure TAssert.CheckEquals(expected, actual: integer; msg: string);
  67. begin
  68. AssertEquals(msg, expected, actual);
  69. end;
  70. class procedure TAssert.CheckEquals(expected, actual: boolean; msg: string);
  71. begin
  72. AssertEquals(msg, expected, actual);
  73. end;
  74. class procedure TAssert.CheckEquals(expected, actual: TClass; msg: string);
  75. begin
  76. AssertEquals(msg, expected, actual);
  77. end;
  78. class procedure TAssert.CheckEquals(expected, actual: QWord;
  79. msg: string);
  80. begin
  81. AssertEquals(msg, expected, actual);
  82. end;
  83. class procedure TAssert.CheckEquals(expected, actual: int64;
  84. msg: string);
  85. begin
  86. AssertEquals(msg, expected, actual);
  87. end;
  88. class procedure TAssert.CheckNotEquals(expected, actual: string; msg: string);
  89. begin
  90. if AnsiCompareStr(Expected, Actual) = 0 then
  91. Fail(ComparisonMsg(msg, Expected, Actual, false))
  92. else
  93. Inc(AssertCount);
  94. end;
  95. class procedure TAssert.CheckNotEquals(expected, actual: unicodestring; msg: string);
  96. begin
  97. if (Expected=Actual) then
  98. Fail(ComparisonMsg(msg, Expected, Actual, false))
  99. else
  100. Inc(AssertCount);
  101. end;
  102. class procedure TAssert.CheckNotEquals(expected, actual: integer; msg: string);
  103. begin
  104. if (expected = actual) then
  105. Fail(ComparisonMsg(msg, IntToStr(expected), IntToStr(actual), false))
  106. else
  107. Inc(AssertCount);
  108. end;
  109. class procedure TAssert.CheckNotEquals(expected, actual: boolean; msg: string);
  110. begin
  111. if (expected = actual) then
  112. Fail(ComparisonMsg(msg, BoolToStr(expected), BoolToStr(actual), false))
  113. else
  114. Inc(AssertCount);
  115. end;
  116. class procedure TAssert.CheckNotEquals(expected: extended; actual: extended;
  117. delta: extended; msg: string);
  118. begin
  119. if (abs(expected-actual) <= delta) then
  120. FailNotEquals(FloatToStr(expected), FloatToStr(actual), msg, nil)
  121. else
  122. Inc(AssertCount);
  123. end;
  124. class procedure TAssert.CheckNotEquals(expected, actual: QWord;
  125. msg: string);
  126. begin
  127. if (expected = actual) then
  128. Fail(ComparisonMsg(msg, IntToStr(expected), IntToStr(actual), false))
  129. else
  130. Inc(AssertCount);
  131. end;
  132. class procedure TAssert.CheckNotEquals(expected, actual: int64;
  133. msg: string);
  134. begin
  135. if (expected = actual) then
  136. Fail(ComparisonMsg(msg, IntToStr(expected), IntToStr(actual), false))
  137. else
  138. Inc(AssertCount);
  139. end;
  140. class procedure TAssert.CheckNull(obj: IUnknown; msg: string);
  141. begin
  142. AssertNullIntf(msg, obj);
  143. end;
  144. class procedure TAssert.CheckNull(obj: TObject; msg: string);
  145. begin
  146. AssertNull(msg, obj);
  147. end;
  148. class procedure TAssert.CheckNotNull(obj: TObject; msg: string);
  149. begin
  150. AssertNotNull(msg, obj);
  151. end;
  152. class procedure TAssert.CheckNotNull(obj: IUnknown; msg: string);
  153. begin
  154. AssertNotNullIntf(msg, obj);
  155. end;
  156. class procedure TAssert.CheckIs(obj: TObject; pClass: TClass; msg: string);
  157. begin
  158. Assert(pClass <> nil);
  159. if obj = nil then
  160. Fail(ComparisonMsg(msg, pClass.ClassName, 'nil'))
  161. else if not obj.ClassType.InheritsFrom(pClass) then
  162. Fail(ComparisonMsg(msg, pClass.ClassName, obj.ClassName))
  163. else
  164. Inc(AssertCount);
  165. end;
  166. class procedure TAssert.CheckSame(expected, actual: TObject; msg: string);
  167. begin
  168. AssertSame(msg, expected, actual);
  169. end;
  170. class procedure TAssert.CheckTrue(condition: Boolean; msg: string);
  171. begin
  172. if (not condition) then
  173. FailNotEquals(BoolToStr(true, true), BoolToStr(false, true), msg, nil)
  174. else
  175. Inc(AssertCount);
  176. end;
  177. class procedure TAssert.CheckFalse(condition: Boolean; msg: string);
  178. begin
  179. if (condition) then
  180. FailNotEquals(BoolToStr(false, true), BoolToStr(true, true), msg, nil)
  181. else
  182. Inc(AssertCount);
  183. end;
  184. class procedure TAssert.CheckException(AMethod: TRunMethod; AExceptionClass: ExceptClass; msg: string = '');
  185. begin
  186. AssertException(msg, AExceptionClass, AMethod);
  187. end;
  188. class function TAssert.EqualsErrorMessage(const expected, actual: string;
  189. const ErrorMsg: string): string;
  190. begin
  191. if (ErrorMsg <> '') then
  192. Result := Format(sExpectedButWasAndMessageFmt, [ErrorMsg + ', ', expected, actual])
  193. else
  194. Result := Format(sExpectedButWasFmt, [expected, actual])
  195. end;
  196. class function TAssert.NotEqualsErrorMessage(const expected, actual: string;
  197. const ErrorMsg: string): string;
  198. begin
  199. if (ErrorMsg <> '') then
  200. Result := Format(sExpectedButWasAndMessageFmt, [ErrorMsg, expected, actual])
  201. else
  202. Result := Format(sExpectedButWasFmt, [expected, actual]);
  203. end;
  204. class function TAssert.Suite: TTest;
  205. begin
  206. result := TTestSuite.Create(self);
  207. end;
  208. {$ENDIF read_implementation}