1 package net.sf.fleet.test;
2
3 import java.util.LinkedList;
4 import java.util.List;
5
6 import net.sf.fleet.Fleet;
7 import net.sf.fleet.Context;
8 import net.sf.fleet.exceptions.FleetConfigurationException;
9 import net.sf.fleet.impl.ContextImpl;
10 import net.sf.fleet.spi.Core;
11
12 import org.testng.annotations.Test;
13
14 import static org.testng.Assert.*;
15 import static org.easymock.EasyMock.*;
16
17 public class ContextTest {
18 @Test(description="Check that the Core module is successfully automatically registered.")
19 public void testAutoCoreRegistration() {
20 Context lContext = new ContextImpl();
21 assertEquals(lContext.getModuleInterfaces().size(),1);
22 assertNotNull(lContext.getModule(Core.class));
23 }
24
25 @Test
26 public void testModuleRegistration() {
27 Context lContext = new ContextImpl();
28
29 DummyModule lModuleImpl = createMock(DummyModule.class);
30 LinkedList<String> lList = new LinkedList<String>();
31 Runnable lRunnable = createMock(Runnable.class);
32 expect(lModuleImpl.listConfiguration()).andReturn(lList);
33 expect(lModuleImpl.runnableService()).andReturn(lRunnable);
34 replay(lModuleImpl);
35
36 lContext.addModule(lModuleImpl);
37 DummyModule lModule = lContext.getModule(DummyModule.class);
38 assertNotNull(lModule);
39 List<String> lListResult = lModule.listConfiguration();
40 Runnable lRunnableResult = lModule.runnableService();
41
42 verify(lModuleImpl);
43
44 assertSame(lListResult,lList);
45 assertSame(lRunnableResult,lRunnable);
46 }
47
48 public void testModuleRegistrationConflict() {
49 Context lContext = new ContextImpl();
50
51 DummyModule lModuleImpl1 = createMock(DummyModule.class);
52 DummyModule lModuleImpl2 = createMock(DummyModule.class);
53
54 replay(lModuleImpl1,lModuleImpl2);
55
56 lContext.addModule(lModuleImpl1);
57 try {
58 lContext.addModule(lModuleImpl2);
59 } catch ( FleetConfigurationException e ) {
60
61 }
62 }
63
64 public void testAutoCurrentContextSetting() {
65 final Context lContext = new ContextImpl();
66
67 final Runnable lExecutionCheck = createMock(Runnable.class);
68 lExecutionCheck.run();
69 replay(lExecutionCheck);
70
71 lContext.addModule(new DummyModuleImpl() {
72 @Override
73 public Runnable runnableService() {
74
75 lExecutionCheck.run();
76 assertSame(Fleet.getCurrentContext(),lContext,"Context was not automatically set.");
77 return null;
78 }
79 });
80 lContext.getModule(DummyModule.class).runnableService();
81 verify(lExecutionCheck);
82
83 assertNull(Fleet.getCurrentContext(),"Context was not reset to null.");
84 }
85 }