1 package cz.cuni.amis.pogamut.base.agent.impl; 2 3 import java.util.logging.Level; 4 5 import junit.framework.Assert; 6 7 import org.junit.Test; 8 9 import cz.cuni.amis.pogamut.base.agent.IAgentId; 10 import cz.cuni.amis.pogamut.base.agent.MockAgent; 11 import cz.cuni.amis.pogamut.base.agent.module.MockModule; 12 import cz.cuni.amis.pogamut.base.agent.state.level1.IAgentStateDown; 13 import cz.cuni.amis.pogamut.base.agent.state.level1.IAgentStateUp; 14 import cz.cuni.amis.pogamut.base.agent.state.level2.IAgentStateFailed; 15 import cz.cuni.amis.pogamut.base.agent.state.level2.IAgentStateInstantiated; 16 import cz.cuni.amis.pogamut.base.agent.state.level2.IAgentStatePaused; 17 import cz.cuni.amis.pogamut.base.agent.state.level2.IAgentStateStopped; 18 import cz.cuni.amis.pogamut.base.agent.state.level3.IAgentStateResumed; 19 import cz.cuni.amis.pogamut.base.agent.state.level3.IAgentStateStartedPaused; 20 import cz.cuni.amis.pogamut.base.component.bus.ComponentBus; 21 import cz.cuni.amis.pogamut.base.component.bus.IComponentBus; 22 import cz.cuni.amis.pogamut.base.component.controller.ComponentState; 23 import cz.cuni.amis.pogamut.base.utils.logging.AgentLogger; 24 25 import cz.cuni.amis.tests.BaseTest; 26 27 public class Test06_AbstractAgent_StartPaused_WithModule extends BaseTest { 28 29 @Test 30 public void test() { 31 IAgentId agentId = new AgentId("Test"); 32 AgentLogger logger = new AgentLogger(agentId); 33 logger.setLevel(Level.ALL); 34 logger.addDefaultConsoleHandler(); 35 IComponentBus bus = new ComponentBus(logger); 36 MockAgent agent = new MockAgent(agentId, bus, logger); 37 MockModule module = new MockModule(agent); 38 39 Assert.assertTrue("agent not in down-state", agent.inState(IAgentStateDown.class)); 40 Assert.assertTrue("agent not in instantiated-state", agent.inState(IAgentStateInstantiated.class)); 41 Assert.assertTrue("module not in instantiated-state", module.getState().getFlag() == ComponentState.INSTANTIATED); 42 43 for (int i = 0; i < 10; ++i) { 44 agent.startPaused(); 45 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 46 Assert.assertTrue("agent not in paused-state", agent.inState(IAgentStatePaused.class)); 47 Assert.assertTrue("agent not in started-paused-state", agent.inState(IAgentStateStartedPaused.class)); 48 Assert.assertTrue("module not in paused-state", module.getState().getFlag() == ComponentState.PAUSED); 49 50 agent.stop(); 51 Assert.assertTrue("agent not in down-state", agent.inState(IAgentStateDown.class)); 52 Assert.assertTrue("agent not in stopped-state", agent.inState(IAgentStateStopped.class)); 53 Assert.assertTrue("module not in stopped-state", module.getState().getFlag() == ComponentState.STOPPED); 54 } 55 56 agent.startPaused(); 57 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 58 Assert.assertTrue("agent not in paused-state", agent.inState(IAgentStatePaused.class)); 59 Assert.assertTrue("agent not in started-paused-state", agent.inState(IAgentStateStartedPaused.class)); 60 Assert.assertTrue("module not in paused-state", module.getState().getFlag() == ComponentState.PAUSED); 61 62 for (int i = 0; i < 10; ++i) { 63 agent.resume(); 64 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 65 Assert.assertTrue("agent not in resumed-state", agent.inState(IAgentStateResumed.class)); 66 Assert.assertTrue("module not in running-state", module.getState().getFlag() == ComponentState.RUNNING); 67 68 agent.pause(); 69 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 70 Assert.assertTrue("agent not in paused-state", agent.inState(IAgentStatePaused.class)); 71 Assert.assertTrue("module not in paused-state", module.getState().getFlag() == ComponentState.PAUSED); 72 } 73 74 for (int i = 0; i < 10; ++i) { 75 agent.kill(); 76 Assert.assertTrue("agent not in down-state", agent.inState(IAgentStateDown.class)); 77 Assert.assertTrue("agent not in stopped-state", agent.inState(IAgentStateFailed.class)); 78 Assert.assertTrue("module not in killed-state", module.getState().getFlag() == ComponentState.KILLED); 79 80 agent.startPaused(); 81 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 82 Assert.assertTrue("agent not in paused-state", agent.inState(IAgentStatePaused.class)); 83 Assert.assertTrue("agent not in started-paused-state", agent.inState(IAgentStateStartedPaused.class)); 84 Assert.assertTrue("module not in paused-state", module.getState().getFlag() == ComponentState.PAUSED); 85 } 86 87 for (int i = 0; i < 10; ++i) { 88 agent.resume(); 89 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 90 Assert.assertTrue("agent not in resumed-state", agent.inState(IAgentStateResumed.class)); 91 Assert.assertTrue("module not in running-state", module.getState().getFlag() == ComponentState.RUNNING); 92 93 agent.pause(); 94 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 95 Assert.assertTrue("agent not in paused-state", agent.inState(IAgentStatePaused.class)); 96 Assert.assertTrue("module not in paused-state", module.getState().getFlag() == ComponentState.PAUSED); 97 98 agent.kill(); 99 Assert.assertTrue("agent not in down-state", agent.inState(IAgentStateDown.class)); 100 Assert.assertTrue("agent not in stopped-state", agent.inState(IAgentStateFailed.class)); 101 Assert.assertTrue("module not in killed-state", module.getState().getFlag() == ComponentState.KILLED); 102 103 agent.startPaused(); 104 Assert.assertTrue("agent not in up-state", agent.inState(IAgentStateUp.class)); 105 Assert.assertTrue("agent not in paused-state", agent.inState(IAgentStatePaused.class)); 106 Assert.assertTrue("agent not in started-paused-state", agent.inState(IAgentStateStartedPaused.class)); 107 Assert.assertTrue("module not in paused-state", module.getState().getFlag() == ComponentState.PAUSED); 108 } 109 110 agent.stop(); 111 Assert.assertTrue("agent not in down-state", agent.inState(IAgentStateDown.class)); 112 Assert.assertTrue("agent not in stopped-state", agent.inState(IAgentStateStopped.class)); 113 Assert.assertTrue("module not in stopped-state", module.getState().getFlag() == ComponentState.STOPPED); 114 115 System.out.println("---/// TEST OK ///---"); 116 117 } 118 119 }