A framework for testing Qpid, built around a standard 'test circuit' design. The idea behind this framework is the use of a test circuit which is configured by a set of test parameters, that may be projected onto a topology of test nodes, with tests scripted to run over test circuits, making as few assumptions as possible about the underlying topology. The standardization of the design, whilst limiting in some respectes, allows a large variety of test scenarios to be written with minimal amounts of coding.

The standard consruction block for a test, is a test circuit. This consists of a publisher, and a receiver. The publisher and receiver may reside on the same machine, or may be distributed. Will use a standard set of properties to define the desired circuit topology.

Tests are always to be controlled from the publishing side only. The receiving end of the circuit is to be exposed to the test code through an interface, that abstracts as much as possible the receiving end of the test. The interface exposes a set of 'assertions' that may be applied to the receiving end of the test circuit.

In the case where the receiving end of the circuit resides on the same JVM, the assertions will call the receivers code locally. Where the receiving end is distributed accross one or more machines, the assertions will be applied to a test report gethered from all of the receivers. Test code will be written to the assertions making as few assumptions as possible about the exact test topology.