public void testRun()
{
_testInstance = createTestInstanceWithOneParticipant();
_testRunner = new TestRunner(_participatingClients, _testInstance , _respondingJmsDelegate, COMMAND_RESPONSE_TIMEOUT, TEST_RESULT_TIMEOUT);
ParticipantResult incomingParticipantResult = new ParticipantResult(PARTICIPANT_NAME);
incomingParticipantResult.setRegisteredClientName(CLIENT1_REGISTERED_NAME);
sendTestResultsLater(_testRunner, incomingParticipantResult);
TestResult results = _testRunner.run();
verify(_respondingJmsDelegate).addCommandListener(isA(TestRunner.TestCommandResponseListener.class));
verify(_respondingJmsDelegate).addCommandListener(isA(TestRunner.ParticipantResultListener.class));
verify(_respondingJmsDelegate).createQueues(isA(List.class));
verify(_respondingJmsDelegate).sendCommandToClient(eq(CLIENT1_REGISTERED_NAME), isA(StartTestCommand.class));
verify(_respondingJmsDelegate).sendCommandToClient(eq(CLIENT1_REGISTERED_NAME), isA(NoOpCommand.class));
verify(_respondingJmsDelegate).sendCommandToClient(eq(CLIENT1_REGISTERED_NAME), isA(TearDownTestCommand.class));
verify(_respondingJmsDelegate).deleteQueues(isA(List.class));
verify(_respondingJmsDelegate).removeCommandListener(isA(TestRunner.ParticipantResultListener.class));
verify(_respondingJmsDelegate).removeCommandListener(isA(TestRunner.TestCommandResponseListener.class));
List<ParticipantResult> participantResults = results.getParticipantResults();
assertEquals(1, participantResults.size());
ParticipantResult resultingParticipantResult = participantResults.get(0);
assertResultHasCorrectTestDetails(resultingParticipantResult);
}