testmockobject.pp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. {$mode objfpc}
  2. {$h+}
  3. {
  4. $Id$
  5. This file is part of the Free Component Library (FCL)
  6. Copyright (c) 2005 Uberto Barbini
  7. mock object tests
  8. See the file COPYING.FPC, included in this distribution,
  9. for details about the copyright.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  13. **********************************************************************}
  14. unit testmockobject;
  15. interface
  16. uses
  17. Classes, SysUtils, fpcunit, testutils, testregistry, ubmockobject;
  18. type
  19. TTestMock= class(TTestCase)
  20. protected
  21. _MockObj: TUbMockObject;
  22. procedure SetUp; override;
  23. procedure TearDown; override;
  24. published
  25. procedure TestRightCalls;
  26. procedure TestWrongCallCount;
  27. procedure TestWrongOrderOfCalls;
  28. procedure TestWrongSignatures;
  29. procedure TestExpectations;
  30. procedure TestResetExpectations;
  31. end;
  32. implementation
  33. { TTestMock }
  34. procedure TTestMock.SetUp;
  35. begin
  36. _MockObj := TUbMockObject.Create;
  37. end;
  38. procedure TTestMock.TearDown;
  39. begin
  40. _MockObj.Free;
  41. end;
  42. procedure TTestMock.TestRightCalls;
  43. begin
  44. _MockObj.StartSetUp;
  45. _MockObj.AddExpectation('abc');
  46. _MockObj.AddExpectation('123');
  47. _MockObj.AddExpectation('The quick brown fox jumped over the lazy dog.');
  48. AssertEquals(3, _MockObj.UncoveredExpectations);
  49. _MockObj.EndSetUp;
  50. _MockObj.AddExpectation('abc');
  51. _MockObj.AddExpectation('123');
  52. _MockObj.AddExpectation('The quick brown fox jumped over the lazy dog.');
  53. _MockObj.Verify;
  54. AssertEquals(0, _MockObj.UncoveredExpectations);
  55. end;
  56. procedure TTestMock.TestWrongCallCount;
  57. begin
  58. _MockObj.StartSetUp;
  59. _MockObj.EndSetUp;
  60. _MockObj.AddExpectation('abc');
  61. AssertException(EAssertionFailedError, @_MockObj.Verify);
  62. AssertEquals(-1, _MockObj.UncoveredExpectations);
  63. _MockObj.StartSetUp;
  64. _MockObj.AddExpectation('abc');
  65. _MockObj.EndSetUp;
  66. AssertException(EAssertionFailedError, @_MockObj.Verify);
  67. AssertEquals(1, _MockObj.UncoveredExpectations);
  68. end;
  69. procedure TTestMock.TestWrongSignatures;
  70. begin
  71. _MockObj.StartSetUp;
  72. _MockObj.AddExpectation('aaa');
  73. _MockObj.EndSetUp;
  74. _MockObj.AddExpectation('bbb');
  75. AssertException(EAssertionFailedError, @_MockObj.Verify);
  76. end;
  77. procedure TTestMock.TestWrongOrderOfCalls;
  78. begin
  79. _MockObj.StartSetUp;
  80. _MockObj.AddExpectation('abc');
  81. _MockObj.AddExpectation('123');
  82. _MockObj.AddExpectation('the quick brown fox jumped over the lazy dog');
  83. _MockObj.EndSetUp;
  84. _MockObj.AddExpectation('abc');
  85. _MockObj.AddExpectation('the quick brown fox jumped over the lazy dog');
  86. _MockObj.AddExpectation('123');
  87. AssertException(EAssertionFailedError, @_MockObj.Verify);
  88. end;
  89. procedure TTestMock.TestExpectations;
  90. begin
  91. AssertTrue(_MockObj.SetUpMode);
  92. _MockObj.StartSetUp;
  93. _MockObj.EndSetUp;
  94. AssertTrue(not _MockObj.SetUpMode);
  95. _MockObj.Verify;
  96. end;
  97. procedure TTestMock.TestResetExpectations;
  98. begin
  99. _MockObj.AddExpectation('abc');
  100. _MockObj.StartSetUp;
  101. _MockObj.AddExpectation('123');
  102. _MockObj.EndSetUp;
  103. _MockObj.AddExpectation('123');
  104. _MockObj.Verify;
  105. end;
  106. initialization
  107. RegisterTests([TTestMock]);
  108. end.