DUnitCompatibleInterface.inc 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  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 CheckNotEquals(expected, actual: string; msg: string = ''); overload;
  12. class procedure CheckNotEquals(expected, actual: unicodestring; msg: string = ''); overload;
  13. class procedure CheckNotEquals(expected, actual: integer; msg: string = ''); overload; virtual;
  14. class procedure CheckNotEquals(expected, actual: boolean; msg: string = ''); overload; virtual;
  15. class procedure CheckNotEquals(expected: extended; actual: extended; delta: extended = 0; msg: string = ''); overload; virtual;
  16. class procedure CheckNull(obj: IUnknown; msg: string = ''); overload;
  17. class procedure CheckNull(obj: TObject; msg: string = ''); overload;
  18. class procedure CheckNotNull(obj: TObject; msg: string = ''); overload;
  19. class procedure CheckNotNull(obj: IUnknown; msg: string = ''); overload; virtual;
  20. class procedure CheckIs(obj :TObject; pClass: TClass; msg: string = ''); overload;
  21. class procedure CheckSame(expected, actual: TObject; msg: string = ''); overload;
  22. class procedure CheckTrue(condition: Boolean; msg: string = '');
  23. class procedure CheckFalse(condition: Boolean; msg: string = '');
  24. class procedure CheckException(AMethod: TRunMethod; AExceptionClass: ExceptClass; msg: string = '');
  25. class function EqualsErrorMessage(const expected, actual: string; const ErrorMsg: string): string;
  26. class function NotEqualsErrorMessage(const expected, actual: string; const ErrorMsg: string): string;
  27. class function Suite: TTest;
  28. {
  29. *** TODO ***
  30. procedure CheckEqualsBin(expected, actual: longword; msg: string = ''; digits: integer=32); virtual;
  31. procedure CheckEqualsHex(expected, actual: longword; msg: string = ''; digits: integer=8); virtual;
  32. procedure CheckNotEqualsBin(expected, actual: longword; msg: string = ''; digits: integer=32); virtual;
  33. procedure CheckNotEqualsHex(expected, actual: longword; msg: string = ''; digits: integer=8); virtual;
  34. procedure CheckNotNull(obj :IUnknown; msg :string = ''); overload; virtual;
  35. procedure CheckSame(expected, actual: IUnknown; msg: string = ''); overload; virtual;
  36. procedure CheckException(AMethod: TTestMethod; AExceptionClass: TClass; msg :string = '');
  37. procedure CheckInherits(expected, actual: TClass; msg: string = ''); overload; virtual;
  38. }
  39. {$ENDIF read_interface}
  40. {$IFDEF read_implementation}
  41. class procedure TAssert.Check(pValue: boolean; pMessage: string);
  42. begin
  43. AssertTrue(pMessage, pValue);
  44. end;
  45. class procedure TAssert.CheckEquals(expected, actual: extended; msg: string);
  46. begin
  47. CheckEquals(expected, actual, 0, msg);
  48. end;
  49. class procedure TAssert.CheckEquals(expected, actual: extended;
  50. delta: extended; msg: string);
  51. begin
  52. AssertEquals(msg, expected, actual, delta);
  53. end;
  54. class procedure TAssert.CheckEquals(expected, actual: string; msg: string);
  55. begin
  56. AssertEquals(msg, expected, actual);
  57. end;
  58. class procedure TAssert.CheckEquals(expected, actual: unicodestring; msg: string);
  59. begin
  60. AssertEquals(msg, expected, actual);
  61. end;
  62. class procedure TAssert.CheckEquals(expected, actual: integer; msg: string);
  63. begin
  64. AssertEquals(msg, expected, actual);
  65. end;
  66. class procedure TAssert.CheckEquals(expected, actual: boolean; msg: string);
  67. begin
  68. AssertEquals(msg, expected, actual);
  69. end;
  70. class procedure TAssert.CheckEquals(expected, actual: TClass; msg: string);
  71. begin
  72. AssertEquals(msg, expected, actual);
  73. end;
  74. class procedure TAssert.CheckNotEquals(expected, actual: string; msg: string);
  75. begin
  76. if AnsiCompareStr(Expected, Actual) = 0 then
  77. Fail(msg + ComparisonMsg(Expected, Actual, false));
  78. end;
  79. class procedure TAssert.CheckNotEquals(expected, actual: unicodestring; msg: string);
  80. begin
  81. if (Expected=Actual) then
  82. Fail(msg + ComparisonMsg(Expected, Actual, false));
  83. end;
  84. class procedure TAssert.CheckNotEquals(expected, actual: integer; msg: string);
  85. begin
  86. if (expected = actual) then
  87. Fail(msg + ComparisonMsg(IntToStr(expected), IntToStr(actual), false));
  88. end;
  89. class procedure TAssert.CheckNotEquals(expected, actual: boolean; msg: string);
  90. begin
  91. if (expected = actual) then
  92. Fail(msg + ComparisonMsg(BoolToStr(expected), BoolToStr(actual), false));
  93. end;
  94. class procedure TAssert.CheckNotEquals(expected: extended; actual: extended;
  95. delta: extended; msg: string);
  96. begin
  97. if (abs(expected-actual) <= delta) then
  98. FailNotEquals(FloatToStr(expected), FloatToStr(actual), msg, nil);
  99. end;
  100. class procedure TAssert.CheckNull(obj: IUnknown; msg: string);
  101. begin
  102. AssertNullIntf(msg, obj);
  103. end;
  104. class procedure TAssert.CheckNull(obj: TObject; msg: string);
  105. begin
  106. AssertNull(msg, obj);
  107. end;
  108. class procedure TAssert.CheckNotNull(obj: TObject; msg: string);
  109. begin
  110. AssertNotNull(msg, obj);
  111. end;
  112. class procedure TAssert.CheckNotNull(obj: IUnknown; msg: string);
  113. begin
  114. AssertNotNullIntf(msg, obj);
  115. end;
  116. class procedure TAssert.CheckIs(obj: TObject; pClass: TClass; msg: string);
  117. begin
  118. Assert(pClass <> nil);
  119. if obj = nil then
  120. Fail(ComparisonMsg(pClass.ClassName, 'nil'))
  121. else if not obj.ClassType.InheritsFrom(pClass) then
  122. Fail(ComparisonMsg(pClass.ClassName, obj.ClassName));
  123. end;
  124. class procedure TAssert.CheckSame(expected, actual: TObject; msg: string);
  125. begin
  126. AssertSame(msg, expected, actual);
  127. end;
  128. class procedure TAssert.CheckTrue(condition: Boolean; msg: string);
  129. begin
  130. if (not condition) then
  131. FailNotEquals(BoolToStr(true, true), BoolToStr(false, true), msg, nil);
  132. end;
  133. class procedure TAssert.CheckFalse(condition: Boolean; msg: string);
  134. begin
  135. if (condition) then
  136. FailNotEquals(BoolToStr(false, true), BoolToStr(true, true), msg, nil);
  137. end;
  138. class procedure TAssert.CheckException(AMethod: TRunMethod; AExceptionClass: ExceptClass; msg: string = '');
  139. begin
  140. AssertException(msg, AExceptionClass, AMethod);
  141. end;
  142. class function TAssert.EqualsErrorMessage(const expected, actual: string;
  143. const ErrorMsg: string): string;
  144. begin
  145. if (ErrorMsg <> '') then
  146. Result := Format(sExpectedButWasAndMessageFmt, [ErrorMsg + ', ', expected, actual])
  147. else
  148. Result := Format(sExpectedButWasFmt, [expected, actual])
  149. end;
  150. class function TAssert.NotEqualsErrorMessage(const expected, actual: string;
  151. const ErrorMsg: string): string;
  152. begin
  153. if (ErrorMsg <> '') then
  154. Result := Format(sExpectedButWasAndMessageFmt, [ErrorMsg, expected, actual])
  155. else
  156. Result := Format(sExpectedButWasFmt, [expected, actual]);
  157. end;
  158. class function TAssert.Suite: TTest;
  159. begin
  160. result := TTestSuite.Create(self);
  161. end;
  162. {$ENDIF read_implementation}