summaryrefslogtreecommitdiff
path: root/cpp/tests/TestCase.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/tests/TestCase.h')
-rw-r--r--cpp/tests/TestCase.h21
1 files changed, 16 insertions, 5 deletions
diff --git a/cpp/tests/TestCase.h b/cpp/tests/TestCase.h
index a88b76bc1d..ec151a6d84 100644
--- a/cpp/tests/TestCase.h
+++ b/cpp/tests/TestCase.h
@@ -28,28 +28,39 @@
namespace qpid {
/**
- * Interface to be implemented by test cases for use with the test
- * runner.
+ * TestCase provides an interface that classes implementing tests to be run using a distributed test client
+ * must implement. The interop test spec, defines a life-cycle for interop tests. This consists of, inviting
+ * a test to participate in a test, assigning a role, starting the test, and extracting a report on the
+ * outcome of the test.
+ *
+ * TODO: There is not method to process the test invitation. Add one.
*/
class TestCase
{
public:
+
/**
- * Directs the test case to act in a particular role. Some roles
- * may be 'activated' at this stage others may require an explicit
- * start request.
+ * Assigns the role to be played by this test case. The test parameters are fully specified in the
+ * assignment messages filed table.
+ *
+ * @param role The role to be played; sender or receiver.
+ * @param assignRoleMessage The role assingment messages field table, contains the full test parameters.
+ * @param options Additional test options.
*/
virtual void assign(const std::string& role, framing::FieldTable& params, TestOptions& options) = 0;
+
/**
* Each test will be started on its own thread, which should block
* until the test completes (this may or may not require an
* explicit stop() request).
*/
virtual void start() = 0;
+
/**
* Requests that the test be stopped if still running.
*/
virtual void stop() = 0;
+
/**
* Allows the test to fill in details on the final report
* message. Will be called only after start has returned.