/* * class: RecordListenerNoRunTest * * Version $Id: RecordListenerNoRunTest.java 8584 2006-08-10 23:06:37Z duns $ * * Date: February 9 2003 * * (c) 2003 LBNL */ package org.freehep.record.loop.event.test; import org.freehep.record.loop.event.ConfigurationEvent; import org.freehep.record.loop.event.RecordEvent; import org.freehep.record.loop.event.RecordListener; import org.freehep.record.loop.event.RecordSuppliedEvent; import junit.framework.*; /** * This class defines the tests that any RecordListener object should pass. * * @version $Id: RecordListenerNoRunTest.java 8584 2006-08-10 23:06:37Z duns $ * @author patton */ public abstract class RecordListenerNoRunTest extends TestCase { // public static final member data // protected static final member data // static final member data // private static final member data // private static member data // private instance member data /** The object being tested. */ private RecordListener testObject; /** The configuration object for any configure or reconfigure message. */ private Object configuration; /** The record object for any recordSupplied message. */ private Object record; /** Standard RecordEvent for this object to send out. */ private final RecordEvent recordEvent; // constructors /** * Create an instance of this class. * Default constructor is declared, but private, to stop accidental * creation of an instance of the class. */ private RecordListenerNoRunTest() { this(null); } /** * Constructs and instance of this test. * @param name */ public RecordListenerNoRunTest(String name) { super(name); recordEvent = new RecordEvent(this); } // instance member function (alphabetic) /** * @return the configuration object for any configure or reconfigure * message. */ protected Object getConfiguration() { return configuration; } /** * @return the record for any nrecordSupplied message. */ protected Object getRecord() { return record; } /** * Prepare the test for a configure transition */ protected abstract void prepareConfiguration(); /** * Prepare the test for a configure transition */ protected abstract void prepareRecordSupplied(); /** * Prepare the test for a reconfigure transition */ protected abstract void prepareReconfiguration(); /** * Sets the object to be tested. * * @param testObject object to be tested. */ protected void setRecordListener(RecordListener testObject) { this.testObject = testObject; } /** * @param the configuration object for a configure or reconfigure * transition. */ protected void setConfiguration(final Object configuration) { this.configuration = configuration; } /** * @param the record for any recordSuppiled transition. */ protected void setRecord(Object record) { this.record = record; } /** * Sets up the fixture, for example, open a network connection. * This method is called before a test is executed. */ // protected void setUp() // { // } /** * Tears down the fixture, for example, close a network connection. * This method is called after a test is executed. */ protected void tearDown() { testObject = null; } /** * Test the transition from Ready to Configured */ public void testConfigureFromReady() { prepareConfiguration(); testObject.configure(new ConfigurationEvent(this, configuration)); } /** * Test the transition from Configured to Finished */ public void testFinishFromSuspended() { testSuspendFromProcessing(); testObject.finish(recordEvent); } /** * Test the transition from Configured to Processing Frames */ public void testProcessingFromConfigured() { testConfigureFromReady(); prepareRecordSupplied(); testObject.recordSupplied(new RecordSuppliedEvent(this, record)); } /** * Test the transition from Processing Frames to Processing Frames */ public void testProcessingFromProcessing() { testProcessingFromConfigured(); prepareRecordSupplied(); testObject.recordSupplied(new RecordSuppliedEvent(this, record)); } /** * Test the transition from Suspended to Configured */ public void testReconfigureFromSuspended() { testSuspendFromProcessing(); prepareReconfiguration(); testObject.reconfigure(new ConfigurationEvent(this, configuration)); } /** * Test the transition from Suspended to Configured */ public void testResumeFromSuspended() { testSuspendFromProcessing(); testObject.resume(recordEvent); } /** * Test the transition from Configured to Suspended */ public void testSuspendFromConfigured() { testConfigureFromReady(); testObject.suspend(recordEvent); } /** * Test the transition from Processing Frames to Suspended */ public void testSuspendFromProcessing() { testProcessingFromConfigured(); testObject.suspend(recordEvent); } // static member functions (alphabetic) /** * Create test suite for this class. */ public static Test suite() { return new TestSuite(RecordListenerNoRunTest.class); } // Description of this object. // public String toString() {} }