1 #include "UnitTest++/UnitTestPP.h" 2 #include "UnitTest++/TestResults.h" 3 #include "RecordingReporter.h" 4 5 using namespace UnitTest; 6 7 namespace { 8 9 TestDetails const details("testname", "suitename", "filename", 123); 10 11 12 TEST(StartsWithNoTestsRun) 13 { 14 TestResults results; 15 CHECK_EQUAL (0, results.GetTotalTestCount()); 16 } 17 18 TEST(RecordsNumbersOfTests) 19 { 20 TestResults results; 21 results.OnTestStart(details); 22 results.OnTestStart(details); 23 results.OnTestStart(details); 24 CHECK_EQUAL(3, results.GetTotalTestCount()); 25 } 26 27 TEST(StartsWithNoTestsFailing) 28 { 29 TestResults results; 30 CHECK_EQUAL (0, results.GetFailureCount()); 31 } 32 33 TEST(RecordsNumberOfFailures) 34 { 35 TestResults results; 36 results.OnTestFailure(details, ""); 37 results.OnTestFailure(details, ""); 38 CHECK_EQUAL(2, results.GetFailureCount()); 39 } 40 41 TEST(RecordsNumberOfFailedTests) 42 { 43 TestResults results; 44 45 results.OnTestStart(details); 46 results.OnTestFailure(details, ""); 47 results.OnTestFinish(details, 0); 48 49 results.OnTestStart(details); 50 results.OnTestFailure(details, ""); 51 results.OnTestFailure(details, ""); 52 results.OnTestFailure(details, ""); 53 results.OnTestFinish(details, 0); 54 55 CHECK_EQUAL (2, results.GetFailedTestCount()); 56 } 57 58 TEST(NotifiesReporterOfTestStartWithCorrectInfo) 59 { 60 RecordingReporter reporter; 61 TestResults results(&reporter); 62 results.OnTestStart(details); 63 64 CHECK_EQUAL (1, reporter.testRunCount); 65 CHECK_EQUAL ("suitename", reporter.lastStartedSuite); 66 CHECK_EQUAL ("testname", reporter.lastStartedTest); 67 } 68 69 TEST(NotifiesReporterOfTestFailureWithCorrectInfo) 70 { 71 RecordingReporter reporter; 72 TestResults results(&reporter); 73 74 results.OnTestFailure(details, "failurestring"); 75 CHECK_EQUAL (1, reporter.testFailedCount); 76 CHECK_EQUAL ("filename", reporter.lastFailedFile); 77 CHECK_EQUAL (123, reporter.lastFailedLine); 78 CHECK_EQUAL ("suitename", reporter.lastFailedSuite); 79 CHECK_EQUAL ("testname", reporter.lastFailedTest); 80 CHECK_EQUAL ("failurestring", reporter.lastFailedMessage); 81 } 82 83 TEST(NotifiesReporterOfCheckFailureWithCorrectInfo) 84 { 85 RecordingReporter reporter; 86 TestResults results(&reporter); 87 88 results.OnTestFailure(details, "failurestring"); 89 CHECK_EQUAL (1, reporter.testFailedCount); 90 91 CHECK_EQUAL ("filename", reporter.lastFailedFile); 92 CHECK_EQUAL (123, reporter.lastFailedLine); 93 CHECK_EQUAL ("testname", reporter.lastFailedTest); 94 CHECK_EQUAL ("suitename", reporter.lastFailedSuite); 95 CHECK_EQUAL ("failurestring", reporter.lastFailedMessage); 96 } 97 98 TEST(NotifiesReporterOfTestEnd) 99 { 100 RecordingReporter reporter; 101 TestResults results(&reporter); 102 103 results.OnTestFinish(details, 0.1234f); 104 CHECK_EQUAL (1, reporter.testFinishedCount); 105 CHECK_EQUAL ("testname", reporter.lastFinishedTest); 106 CHECK_EQUAL ("suitename", reporter.lastFinishedSuite); 107 CHECK_CLOSE (0.1234f, reporter.lastFinishedTestTime, 0.0001f); 108 } 109 110 111 } 112