1 #pragma once
2 
3 #include "rapidcheck/detail/TestListener.h"
4 
5 namespace rc {
6 namespace test {
7 
8 struct MockTestListener : public rc::detail::TestListener {
9   void
onTestCaseFinishedMockTestListener10   onTestCaseFinished(const rc::detail::CaseDescription &description) override {
11     onTestCaseFinishedCount++;
12     if (onTestCaseFinishedCallback) {
13       onTestCaseFinishedCallback(description);
14     }
15   }
16 
onShrinkTriedMockTestListener17   void onShrinkTried(const rc::detail::CaseDescription &shrink,
18                      bool accepted) override {
19     onShrinkTriedCount++;
20     if (onShrinkTriedCallback) {
21       onShrinkTriedCallback(shrink, accepted);
22     }
23   }
24 
onTestFinishedMockTestListener25   void onTestFinished(const rc::detail::TestMetadata &metadata,
26                       const rc::detail::TestResult &result) override {
27     onTestFinishedCount++;
28     if (onTestFinishedCallback) {
29       onTestFinishedCallback(metadata, result);
30     }
31   }
32 
33   std::function<void(const rc::detail::CaseDescription &)>
34       onTestCaseFinishedCallback;
35   int onTestCaseFinishedCount = 0;
36 
37   std::function<void(const rc::detail::CaseDescription &, bool)>
38       onShrinkTriedCallback;
39   int onShrinkTriedCount = 0;
40 
41   std::function<void(const rc::detail::TestMetadata &,
42                      const rc::detail::TestResult &)> onTestFinishedCallback;
43   int onTestFinishedCount = 0;
44 };
45 
46 } // namespace test
47 } // namespace rc
48