CppUnit project page | FAQ | CppUnit home page

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# Protector Class Reference

Protects one or more test case run. More...

`#include <Protector.h>`

Inheritance diagram for Protector:

[legend]
List of all members.

## Public Member Functions
virtual | ~Protector ()
virtual bool | protect (const Functor &functor, const ProtectorContext &context)=0
## Protected Member Functions
void | reportError (const ProtectorContext &context, const Exception &error) const
void | reportError (const ProtectorContext &context, const Message &message, const SourceLine &sourceLine=SourceLine()) const
void | reportFailure (const ProtectorContext &context, const Exception &failure) const
Message | actualMessage (const Message &message, const ProtectorContext &context) const

## Detailed Description

Protects one or more test case run.

Protector are used to globably 'decorate' a test case. The most common usage of Protector is to catch exception that do not subclass std::exception, such as MFC CException class or Rogue Wave RWXMsg class, and capture the message associated to the exception. In fact, CppUnit capture message from Exception and std::exception using a Protector.

Protector are chained. When you add a Protector using TestResult::pushProtector(), your protector is in fact passed as a Functor to the first protector of the chain.

TestCase protects call to setUp(), runTest() and tearDown() by calling TestResult::protect().

Because the protector chain is handled by TestResult, a protector can be active for a single test, or a complete test run.

Here are some possible usages:

- run all test case in a separate thread and assumes the test failed if it did not finish in a given time (infinite loop work around)
- performance tracing : time only the runTest() time.
  See also:
    TestResult, TestCase, TestListener.

## Constructor & Destructor Documentation

Protector::~Protector | ( |  | ) | `[virtual]`

## Member Function Documentation

virtual bool Protector::protect | ( | const Functor & | functor,
|  | const ProtectorContext & | context |
| ) |  |  | `[pure virtual]`

Implemented in DefaultProtector, and ProtectorChain.

void Protector::reportError | ( | const ProtectorContext & | context,
|  | const Exception & | error |
| ) |  |  | const`[protected]`

void Protector::reportError | ( | const ProtectorContext & | context,
|  | const Message & | message,
|  | const SourceLine & | sourceLine = `SourceLine()` |
| ) |  |  | const`[protected]`

void Protector::reportFailure | ( | const ProtectorContext & | context,
|  | const Exception & | failure |
| ) |  |  | const`[protected]`

Message Protector::actualMessage | ( | const Message & | message,
|  | const ProtectorContext & | context |
| ) |  |  | const`[protected]`

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

- Protector.h
- Protector.cpp

| hosts this site. |  | Send comments to: CppUnit Developers