org.apache.qpid.sustained
Class SustainedTestCase

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by org.apache.qpid.test.utils.QpidTestCase
              extended by org.apache.qpid.test.utils.QpidBrokerTestCase
                  extended by org.apache.qpid.test.framework.FrameworkBaseCase
                      extended by org.apache.qpid.sustained.SustainedTestCase
All Implemented Interfaces:
junit.framework.Test, org.apache.qpid.junit.extensions.SetupTaskAware, org.apache.qpid.test.framework.BrokerLifecycleAware, org.apache.qpid.test.framework.DropInTest, org.apache.qpid.test.framework.FrameworkTestContext

public class SustainedTestCase
extends org.apache.qpid.test.framework.FrameworkBaseCase
implements org.apache.qpid.test.framework.DropInTest

SustainedTestCase is a FrameworkBaseCase that runs the "Perf_SustainedPubSub" test case. This consists of one test client sending, and several receiving, and attempts to find the highest rate at which messages can be broadcast to the receivers. It is also a DropInTest to which more test clients may be added during a test run.

CRC Card
Responsibilities Collaborations


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.qpid.test.utils.QpidBrokerTestCase
org.apache.qpid.test.utils.QpidBrokerTestCase.MessageType
 
Field Summary
(package private)  org.apache.log4j.Logger log
          Used for debugging.
 
Fields inherited from class org.apache.qpid.test.utils.QpidBrokerTestCase
_broker, _brokerLanguage, _brokerLogPrefix, _brokerOutputStream, _brokerPersistent, _brokers, _configFile, _connectionFactory, _connections, _initialContext, _interleaveBrokerLog, _logger, _output, _outputFile, _testName, BROKER_READY, CONTENT, CPP, DEFAULT_MANAGEMENT_PORT, DEFAULT_MESSAGE_SIZE, DEFAULT_PORT, DEFAULT_SSL_PORT, DEFAULT_VM_PORT, EXTERNAL, INDEX, JAVA, LOGMONITOR_TIMEOUT, QPID_HOME, QpidHome, QUEUE, RECEIVE_TIMEOUT, TOPIC, VM
 
Fields inherited from class org.apache.qpid.test.utils.QpidTestCase
MEMORY_STORE_CLASS_NAME, MS_CLASS_NAME_KEY
 
Constructor Summary
SustainedTestCase(String name)
          Creates a new coordinating test case with the specified name.
 
Method Summary
 String getTestCaseNameForTestMethod(String methodName)
          Should provide a translation from the junit method name of a test to its test case name as known to the test clients that will run the test.
 void lateJoin(Message message)
          Accepts a late joining client into this test case.
 void testBasicPubSub()
          Performs a single test run of the sustained test.
 
Methods inherited from class org.apache.qpid.test.framework.FrameworkBaseCase
assertionList, assertionsToString, assertNoFailures, chainSetupTask, chainTearDownTask, getCircuitFactory, getFailureMechanism, getLiveBroker, getTaskHandler, getTestCaseVector, getTestParameters, getTestProps, setCircuitFactory, setFailureMechanism, setInVmBrokers, setLiveBroker, setTestProps, setUp, tearDown, usingInVmBroker
 
Methods inherited from class org.apache.qpid.test.utils.QpidBrokerTestCase
cleanBroker, createMessage, createNextMessage, drainQueue, getBroker, getBrokerCommand, getClientConnection, getConfigurationStringProperty, getConnection, getConnection, getConnection, getConnectionFactory, getConnectionFactory, getConnectionURL, getInitialContext, getLogger, getManagementPort, getMessageSize, getPort, getPort, getTestConfigFile, getTestQueue, getTestQueueName, getTestVirtualhostsFile, isBroker010, isBroker08, isBrokerStorePersistent, isCppBroker, isExternalBroker, isJavaBroker, makeVirtualHostPersistent, reloadBrokerSecurityConfig, restartBroker, restartBroker, revertLoggingLevels, revertSystemProperties, runBare, saveTestConfiguration, saveTestVirtualhosts, sendMessage, sendMessage, sendMessage, setBrokerEnvironment, setBrokerOnlySystemProperty, setConfigurationProperty, setLoggerLevel, setMessageSize, setSystemProperty, setSystemProperty, setTestClientSystemProperty, startBroker, startBroker, stopBroker, stopBroker
 
Methods inherited from class org.apache.qpid.test.utils.QpidTestCase
getTestProfileMessageStoreClassName, run
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, getName, run, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

org.apache.log4j.Logger log
Used for debugging.

Constructor Detail

SustainedTestCase

public SustainedTestCase(String name)
Creates a new coordinating test case with the specified name.

Parameters:
name - The test case name.
Method Detail

testBasicPubSub

public void testBasicPubSub()
                     throws Exception
Performs a single test run of the sustained test.

Throws:
Exception - Any exceptions are allowed to fall through and fail the test.

lateJoin

public void lateJoin(Message message)
              throws JMSException
Accepts a late joining client into this test case. The client will be enlisted with a control message with the 'CONTROL_TYPE' field set to the value 'LATEJOIN'. It should also provide values for the fields:

CLIENT_NAME A unique name for the new client.
CLIENT_PRIVATE_CONTROL_KEY The key for the route on which the client receives its control messages.

Specified by:
lateJoin in interface org.apache.qpid.test.framework.DropInTest
Parameters:
message - The late joiners join message.
Throws:
JMSException - Any JMS Exception are allowed to fall through, indicating that the join failed.

getTestCaseNameForTestMethod

public String getTestCaseNameForTestMethod(String methodName)
Should provide a translation from the junit method name of a test to its test case name as known to the test clients that will run the test. The purpose of this is to convert the JUnit method name into the correct test case name to place into the test invite. For example the method "testP2P" might map onto the interop test case name "TC2_BasicP2P".

Overrides:
getTestCaseNameForTestMethod in class org.apache.qpid.test.framework.FrameworkBaseCase
Parameters:
methodName - The name of the JUnit test method.
Returns:
The name of the corresponding interop test case.


Licensed to the Apache Software Foundation