View Javadoc

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 }