import gui.Main; import gui.MainFrame; import hcs.model.Room; import java.awt.Container; import java.awt.Frame; import javax.swing.JComponent; import junit.extensions.jfcunit.JFCTestCase; import junit.extensions.jfcunit.JFCTestHelper; import junit.extensions.jfcunit.TestHelper; import junit.extensions.jfcunit.eventdata.JFCEventManager; import mystubs.CRoom; import mystubs.Env; import mystubs.PhysBoiler; import stubs.PhysicalFactory; import activity.SetClockActivity; public class Test_Scenario_2 extends JFCTestCase { MainFrame frame; Frame manager = null; protected void setUp( ) throws Exception { super.setUp( ); JFCEventManager.setDebug(true); JFCEventManager.setDebugType(JFCEventManager.DEBUG_OUTPUT); JFCEventManager.setRecording(true); Main.main((new String[3])); this.frame = Main.getMainFrame(); setHelper( new JFCTestHelper( ) ); SetClockActivity s = new SetClockActivity(); s.setDelay(10); } public void testScenario2() throws InterruptedException{ Env e = (Env) PhysicalFactory.getPhysicalEnvironment(); e.setRain(true); e.setTemperature(21.0); PhysBoiler b = (PhysBoiler) PhysicalFactory.getPhysicalBoiler(); b.setTargetTemperature(15.0); CRoom r = (CRoom)PhysicalFactory.getPhysicalRoom("living room", 0); r.setPresence(false); r.setTemperature(18.0); Thread.sleep(40); r.setPresence(true); Container c = frame.getContentPane(); gui.RoomMonitor rm = (gui.RoomMonitor) getComponentByName(c, "living room RoomMonitor"); Room _r = rm.getRoom(); int standardInsideTime = _r.getSettings().getStandardInsideTime()*60*10; boolean changed=false; Thread.sleep(standardInsideTime/2); assertEquals(15.0,b.getTargetTemperature()); r.setPresence(false); Thread.sleep(standardInsideTime + 100); if(b.getTargetTemperature()!=15.0) changed=true; assertFalse(changed); } public static JComponent getComponentByName(Container container,String name) { for (int i = 0; i < container.getComponentCount(); i++) { if (name.equals(container.getComponent(i).getName())) { return (JComponent) container.getComponent(i); } } return null; } protected void tearDown() throws Exception{ this.frame.setVisible(false); frame.dispose(); frame = null; TestHelper.cleanUp( this ); super.tearDown( ); } }