1 package net.sf.fleet.test;
2
3 import static org.easymock.EasyMock.*;
4 import net.sf.fleet.annotations.Module;
5 import net.sf.fleet.annotations.Service;
6 import net.sf.fleet.impl.ContextImpl;
7
8 import org.testng.annotations.Test;
9
10 public class ServicesIntegrationTest {
11
12 @Module
13 public interface ModuleA {
14 @Service(id="runnable")
15 Runnable getRunnable();
16 }
17
18 @Test
19 public void testServiceInvocation() {
20 Runnable lRunnable = createMock(Runnable.class);
21 ModuleA lModuleAImpl = createMock(ModuleA.class);
22
23 lRunnable.run();
24 lRunnable.run();
25 expect(lModuleAImpl.getRunnable()).andReturn(lRunnable);
26
27 replay(lModuleAImpl,lRunnable);
28
29 ContextImpl lContext = new ContextImpl();
30 lContext.addModule(lModuleAImpl);
31
32
33 {
34 ModuleA lModule = lContext.getModule(ModuleA.class);
35 lModule.getRunnable().run();
36 }
37
38
39 {
40 ModuleA lModule = lContext.getModule(ModuleA.class);
41 lModule.getRunnable().run();
42 }
43
44 verify(lModuleAImpl,lRunnable);
45
46 }
47 }