1 package net.sf.fleet.test;
2
3 import static org.testng.Assert.*;
4 import static org.easymock.EasyMock.*;
5
6 import net.sf.fleet.configuration.impl.ConfigurationBuildingInterceptor;
7 import net.sf.fleet.configuration.model.ConfigurationManager;
8 import net.sf.fleet.configuration.model.ConfigurationsFacet;
9 import net.sf.fleet.configuration.model.PendingContributionsFacet;
10 import net.sf.fleet.exceptions.FleetConfigurationException;
11 import net.sf.fleet.impl.ContextImpl;
12 import net.sf.fleet.interceptor.InterceptorPipeline;
13 import net.sf.fleet.interceptor.ServiceModuleInterceptorContext;
14 import net.sf.fleet.interceptor.model.InvocationHandlerFacet;
15 import net.sf.fleet.interceptor.model.ModuleMethodInterceptorFacet;
16 import net.sf.fleet.model.ModuleInterface;
17 import net.sf.fleet.util.URIUtils;
18
19 import org.testng.annotations.Test;
20
21 public class BuilderTest {
22 @Test
23 public void testConfigurationBuilder() {
24 ContextImpl lContext = new ContextImpl();
25 lContext.addModule(new DummyModuleImpl());
26 ConfigurationManager lConfiguration = lContext.getModuleInterface(DummyModule.class).getFacet(ConfigurationsFacet.class).getConfiguration("list");
27 assertNotNull(lConfiguration);
28 }
29
30 @Test
31 public void testConfigurationBuilderWithDuplicateConfiguration() {
32 ContextImpl lContext = new ContextImpl();
33 DuplicateConfigurationModule lModule = createMock(DuplicateConfigurationModule.class);
34 try {
35 lContext.addModule(lModule);
36 fail("Adding a module with two configurations of the same name should have thrown an exception.");
37 } catch ( FleetConfigurationException e ) {
38
39 }
40 }
41
42 @Test
43 public void testModuleInterceptorProxyBuilder() {
44 ContextImpl lContext = new ContextImpl();
45 lContext.addModule(new DummyModuleImpl());
46 InvocationHandlerFacet lFacet = lContext.getModuleInterface(DummyModule.class).getFacet(InvocationHandlerFacet.class);
47 assertNotNull(lFacet.getInvocationHandler());
48 }
49
50 @Test
51 public void testContributionBuilder() {
52 ContextImpl lContext = new ContextImpl();
53 lContext.addModule(new DummyModuleImpl());
54 PendingContributionsFacet lFacet = lContext.getFacet(PendingContributionsFacet.class);
55 assertTrue(lFacet.getPendingContributionCount() > 0, "Pending contributions should have numbered at least one.");
56 }
57
58 @Test
59 public void testContributionResolverBuilder() {
60 ContextImpl lContext = new ContextImpl();
61 lContext.addModule(new DummyModuleImpl());
62 ModuleInterface lModule = lContext.getModuleInterface(DummyModule.class);
63 ConfigurationsFacet lConfigurationsFacet = lModule.getFacet(ConfigurationsFacet.class);
64 ConfigurationManager lConfiguration = lConfigurationsFacet.getConfiguration("list");
65 assertEquals((int)lConfiguration.getContributorCount(),1);
66 }
67
68 @Test
69 public void testConfigurationBuildingInterceptorBuilder() throws SecurityException, NoSuchMethodException {
70 ContextImpl lContext = new ContextImpl();
71 lContext.addModule(new DummyModuleImpl());
72 ModuleInterface lModule = lContext.getModuleInterface(DummyModule.class);
73 InterceptorPipeline<ServiceModuleInterceptorContext> lPipelineForMethod = lModule.getFacet(ModuleMethodInterceptorFacet.class).get(DummyModule.class.getMethod("listConfiguration", new Class[0]));
74 assertTrue(lPipelineForMethod.contains(URIUtils.classURI(ConfigurationBuildingInterceptor.class)));
75 }
76 }