mimic++ v4
Loading...
Searching...
No Matches
mimicpp::IReporter Class Referenceabstract

The reporter interface. More...

#include <Reporter.hpp>

Inheritance diagram for mimicpp::IReporter:
[legend]

Public Member Functions

virtual ~IReporter ()=default
 Defaulted virtual destructor.
 
virtual void report_no_matches (CallReport call, std::vector< MatchReport > matchReports)=0
 Expects reports about all none matching expectations. This is only called, if there are no better options available.
 
virtual void report_inapplicable_matches (CallReport call, std::vector< MatchReport > matchReports)=0
 Expects reports about all inapplicable matching expectations. This is only called, if there are no better options available.
 
virtual void report_full_match (CallReport call, MatchReport matchReport) noexcept=0
 Expects the report about a full matching expectation.
 
virtual void report_unfulfilled_expectation (ExpectationReport expectationReport)=0
 Expects the report of an unfulfilled expectation.
 
virtual void report_error (StringT message)=0
 Expects rather unspecific errors.
 
virtual void report_unhandled_exception (CallReport call, ExpectationReport expectationReport, std::exception_ptr exception)=0
 Expects reports about unhandled exceptions, during handle_call.
 

Protected Member Functions

 IReporter ()=default
 
 IReporter (const IReporter &)=default
 
IReporteroperator= (const IReporter &)=default
 
 IReporter (IReporter &&)=default
 
IReporteroperator= (IReporter &&)=default
 

Detailed Description

The reporter interface.

This is the central interface to be used, when creating reporters for external domains.

Constructor & Destructor Documentation

◆ ~IReporter()

virtual mimicpp::IReporter::~IReporter ( )
virtualdefault

Defaulted virtual destructor.

◆ IReporter() [1/3]

mimicpp::IReporter::IReporter ( )
nodiscardprotecteddefault

◆ IReporter() [2/3]

mimicpp::IReporter::IReporter ( const IReporter & )
protecteddefault

◆ IReporter() [3/3]

mimicpp::IReporter::IReporter ( IReporter && )
protecteddefault

Member Function Documentation

◆ operator=() [1/2]

IReporter & mimicpp::IReporter::operator= ( const IReporter & )
protecteddefault

◆ operator=() [2/2]

IReporter & mimicpp::IReporter::operator= ( IReporter && )
protecteddefault

◆ report_error()

virtual void mimicpp::IReporter::report_error ( StringT message)
pure virtual

Expects rather unspecific errors.

Parameters
messageThe error message.

This function is called, when an unspecific error occurs.

Note
In general, it is expected that this function does not return, but throws an exception instead. But, as this function may be called due to any reason, implementations shall check whether an uncaught exception already exists (e.g. via std::uncaught_exceptions) before throwing by themselves.
See also
DefaultReporter::report_error for an example.

Implemented in mimicpp::BasicReporter< successReporter, warningReporter, failReporter >, and mimicpp::DefaultReporter.

◆ report_full_match()

virtual void mimicpp::IReporter::report_full_match ( CallReport call,
MatchReport matchReport )
pure virtualnoexcept

Expects the report about a full matching expectation.

Parameters
callThe call report.
matchReportReport of the full matching expectation.

This function is called, when a match has been found. There are no other expectations on the behavior of this function; except the noexcept guarantee. Implementations shall simply return to the caller.

Implemented in mimicpp::BasicReporter< successReporter, warningReporter, failReporter >, and mimicpp::DefaultReporter.

◆ report_inapplicable_matches()

virtual void mimicpp::IReporter::report_inapplicable_matches ( CallReport call,
std::vector< MatchReport > matchReports )
pure virtual

Expects reports about all inapplicable matching expectations. This is only called, if there are no better options available.

Parameters
callThe call report.
matchReportsReports of all inapplicable matching expectations.

This function is called, when no applicable match has been found, but actually the call expectations are fulfilled. This in fact happens, when the times policy is already saturated (e.g. it was once expected and already matched once) or otherwise not applicable (e.g. a sequence element is not the current element).

Attention
Derived reporter implementations must never return and shall instead leave the function via a thrown exception or a terminating mechanism (e.g. std::terminate). Otherwise, this will result in undefined behavior.

Implemented in mimicpp::BasicReporter< successReporter, warningReporter, failReporter >, and mimicpp::DefaultReporter.

◆ report_no_matches()

virtual void mimicpp::IReporter::report_no_matches ( CallReport call,
std::vector< MatchReport > matchReports )
pure virtual

Expects reports about all none matching expectations. This is only called, if there are no better options available.

Parameters
callThe call report.
matchReportsReports of all none matching expectations.

This function is called, when no match has been found and there are no other expectations, which are matching but inapplicable. In fact, this is the fallback reporting mechanism, for unmatched calls.

Note
matchReports may be empty.
Attention
Derived reporter implementations must never return and shall instead leave the function via a thrown exception or a terminating mechanism (e.g. std::terminate). Otherwise, this will result in undefined behavior.

Implemented in mimicpp::BasicReporter< successReporter, warningReporter, failReporter >, and mimicpp::DefaultReporter.

◆ report_unfulfilled_expectation()

virtual void mimicpp::IReporter::report_unfulfilled_expectation ( ExpectationReport expectationReport)
pure virtual

Expects the report of an unfulfilled expectation.

Parameters
expectationReportThe expectation report.

This function is called, when an unfulfilled expectation goes out of scope. In fact this happens, when the times policy is not satisfied.

Note
In general, it is expected that this function does not return, but throws an exception instead. But, as this function is always called when an unfulfilled expectation goes out of scope, implementations shall check whether an uncaught exception already exists (e.g. via std::uncaught_exceptions) before throwing by themselves.
See also
DefaultReporter::report_unfulfilled_expectation for an example.

Implemented in mimicpp::BasicReporter< successReporter, warningReporter, failReporter >, and mimicpp::DefaultReporter.

◆ report_unhandled_exception()

virtual void mimicpp::IReporter::report_unhandled_exception ( CallReport call,
ExpectationReport expectationReport,
std::exception_ptr exception )
pure virtual

Expects reports about unhandled exceptions, during handle_call.

Parameters
callThe call report.
expectationReportThe expectation report.
exceptionThe exception.

This function is called, when an expectation throws during a matches call. There are no expectations on the behavior of this function. As this function is called inside a catch block, throwing exceptions will result in a terminate call.

Implemented in mimicpp::BasicReporter< successReporter, warningReporter, failReporter >, and mimicpp::DefaultReporter.


The documentation for this class was generated from the following file: