import junit.framework.TestCase; public class MikrowelleTest extends TestCase { public void testNormalSequence() { Mikrowelle m = new Mikrowelle(); assertTrue( !m.radiationOn ); assertEquals( Mikrowelle.STATE_OPEN, m.getCurrentState() ); m.trigger(Mikrowelle.EVENT_DOORHASBEENCLOSED); assertEquals( Mikrowelle.STATE_CLOSED, m.getCurrentState() ); m.trigger( Mikrowelle.EVENT_ONBUTTONPRESSED ); assertEquals( Mikrowelle.STATE_ACTIVE, m.getCurrentState() ); assertTrue( m.radiationOn ); assertTrue( m.ventilationOn ); m.trigger( Mikrowelle.EVENT_TOGGLERADIATION ); assertEquals( Mikrowelle.STATE_PASSIVE, m.getCurrentState() ); assertTrue( !m.radiationOn ); assertTrue( m.ventilationOn ); m.trigger( Mikrowelle.EVENT_TOGGLERADIATION ); assertEquals( Mikrowelle.STATE_ACTIVE, m.getCurrentState() ); assertTrue( m.radiationOn ); assertTrue( m.ventilationOn ); m.trigger( Mikrowelle.EVENT_ONBUTTONPRESSED ); assertEquals( Mikrowelle.STATE_CLOSED, m.getCurrentState() ); assertTrue( !m.radiationOn ); assertTrue( !m.ventilationOn ); m.trigger( Mikrowelle.EVENT_DOORHASBEENOPENED ); assertEquals( Mikrowelle.STATE_OPEN, m.getCurrentState() ); assertTrue( !m.radiationOn ); assertTrue( !m.ventilationOn ); } public void testUnexpectedDoorOpened() { Mikrowelle m = new Mikrowelle(); assertTrue( !m.radiationOn ); assertEquals( Mikrowelle.STATE_OPEN, m.getCurrentState() ); m.trigger(Mikrowelle.EVENT_DOORHASBEENCLOSED); assertEquals( Mikrowelle.STATE_CLOSED, m.getCurrentState() ); m.trigger( Mikrowelle.EVENT_ONBUTTONPRESSED ); assertEquals( Mikrowelle.STATE_ACTIVE, m.getCurrentState() ); assertTrue( m.radiationOn ); assertTrue( m.ventilationOn ); m.trigger( Mikrowelle.EVENT_DOORHASBEENOPENED ); assertEquals( Mikrowelle.STATE_OPEN, m.getCurrentState() ); assertTrue( !m.radiationOn ); assertTrue( !m.ventilationOn ); } }