View Javadoc
1   package org.andromda.core.configuration;
2   
3   import java.net.URL;
4   import junit.framework.TestCase;
5   
6   /**
7    * JUnit test for {@link org.andromda.core.configuration.Configuration}
8    *
9    * @author Chad Brandon
10   */
11  public class ConfigurationTest
12      extends TestCase
13  {
14      /**
15       *
16       */
17      public void testGetInstance()
18      {
19          URL uri = ConfigurationTest.class.getResource("configuration.xml");
20          assertNotNull(uri);
21          Configuration configuration = Configuration.getInstance(uri);
22          assertNotNull(configuration);
23  
24          // initialize the configuration
25          configuration.initialize();
26  
27          // properties
28          assertEquals(2, configuration.getProperties().length);
29          final Property property1 = configuration.getProperties()[0];
30          assertEquals(
31              "modelValidation",
32              property1.getName());
33          assertEquals(
34              "true",
35              property1.getValue());
36          final Property property2 = configuration.getProperties()[1];
37          assertEquals(
38              "cartridgeFilter",
39              property2.getName());
40          assertEquals(
41              "${filter}",
42              property2.getValue());
43  
44          // server
45          final Server server = configuration.getServer();
46          assertNotNull(server);
47          assertEquals(
48              "localhost",
49              server.getHost());
50          assertEquals(
51              4444,
52              server.getPort());
53          assertEquals(
54              5000,
55              server.getLoadInterval());
56          assertEquals(
57              50,
58              server.getMaximumFailedLoadAttempts());
59  
60          // repositories
61          assertEquals(1, configuration.getRepositories().length);
62          final Repository repository = configuration.getRepositories()[0];
63          assertNotNull(repository);
64          assertEquals("test", repository.getName());
65  
66          // models
67          assertEquals(3, repository.getModels().length);
68          final Model model1 = repository.getModels()[0];
69          assertNotNull(model1);
70          assertEquals(2, model1.getUris().length);
71          assertEquals(
72              "file:model1Uri1.xmi",
73              model1.getUris()[0]);
74          assertEquals(
75              "file:model1Uri2.xmi",
76              model1.getUris()[1]);
77          assertTrue(model1.isLastModifiedCheck());
78          assertEquals(2, model1.getModuleSearchLocations().length);
79  
80          // module search locations
81          final Location[] moduleLocations = model1.getModuleSearchLocations();
82          assertNotNull(moduleLocations);
83          assertEquals(2, moduleLocations.length);
84          assertEquals("/path/to/model/modules1", moduleLocations[0].getPath());
85          assertEquals("*.xmi, *.xml.zip", moduleLocations[0].getPatterns());
86          assertEquals("/path/to/model/modules2", moduleLocations[1].getPath());
87          assertNull(moduleLocations[1].getPatterns());
88          assertEquals(2, model1.getModuleSearchLocationPaths().length);
89          assertEquals("/path/to/model/modules1", model1.getModuleSearchLocationPaths()[0]);
90          assertEquals("/path/to/model/modules2", model1.getModuleSearchLocationPaths()[1]);
91  
92          // modelPackages
93          assertNotNull(model1.getPackages());
94          assertFalse(model1.getPackages().isApply("some::package"));
95          assertFalse(model1.getPackages().isApply("org::andromda::metafacades::uml"));
96          assertTrue(model1.getPackages().isApply("org::andromda::cartridges::test"));
97  
98          assertNotNull(model1.getConstraints());
99          assertFalse(model1.getConstraints().isApply("org::andromda::uml::metafacades::Entity::constraint name"));
100         assertFalse(model1.getConstraints().isApply("org::andromda::uml::somepackage::anotherpackage::andanotherpackage::SomeClass"));
101         assertFalse(model1.getConstraints().isApply("org::project::package::somepackage::anotherpackage::andanotherpackage::SomeClass"));
102         assertTrue(model1.getConstraints().isApply("org::project::package::some2package::anotherpackage::SomeClass"));
103         assertFalse(model1.getConstraints().isApply("andromda::com::package::somepackage"));
104         assertFalse(model1.getConstraints().isApply("com::package::SomeClass"));
105         assertTrue(model1.getConstraints().isApply("com::apackage::SomeClass"));
106         assertTrue(model1.getConstraints().isApply("org::andromda::uml::metafacades::Service"));
107         assertTrue(model1.getConstraints().isApply("some:Entity"));
108 
109         // transformations
110         assertEquals(2, model1.getTransformations().length);
111         final Transformation transformation1 = model1.getTransformations()[0];
112         assertNotNull(transformation1);
113         assertEquals(
114             "file:transformation1.xsl",
115             transformation1.getUri());
116         assertEquals(
117             "path/to/some/directory/transformed-model.xmi",
118             transformation1.getOutputLocation());
119         final Transformation transformation2 = model1.getTransformations()[1];
120         assertNotNull(transformation2);
121         assertEquals(
122             "file:transformation2.xsl",
123             transformation2.getUri());
124 
125         final Model model2 = repository.getModels()[1];
126         assertNotNull(model2);
127         assertEquals(1, model2.getUris().length);
128         assertEquals(
129             "file:model2.xmi",
130             model2.getUris()[0]);
131         assertEquals(0, model2.getModuleSearchLocations().length);
132         assertFalse(model2.isLastModifiedCheck());
133 
134         final Model model3 = repository.getModels()[2];
135         assertNotNull(model3);
136         assertEquals(1, model3.getUris().length);
137         assertEquals(
138             "file:model3.xmi",
139             model3.getUris()[0]);
140         assertNotNull(model3.getPackages());
141         assertTrue(model3.getPackages().isApply("some::package"));
142         assertFalse(model3.getPackages().isApply("org::andromda::metafacades::uml"));
143 
144         // namespaces
145         final Namespace namespace1 = Namespaces.instance().getNamespace("default");
146         final Property namespace1Property1 = namespace1.getProperty("languageMappingsUri");
147 
148         assertNotNull(namespace1Property1);
149         assertEquals(
150             "Java",
151             namespace1Property1.getValue());
152         assertFalse(namespace1Property1.isIgnore());
153         final Property namespace1Property2 = namespace1.getProperty("wrapperMappingsUri");
154         assertEquals(
155             "JavaWrapper",
156             namespace1Property2.getValue());
157         assertNotNull(namespace1Property2);
158         final Property namespace1Property3 = namespace1.getProperty("enumerationLiteralNameMask");
159         assertNotNull(namespace1Property3);
160         assertEquals(
161             "upperunderscore",
162             namespace1Property3.getValue());
163         final Property namespace1Property4 = namespace1.getProperty("maxSqlNameLength");
164         assertNotNull(namespace1Property4);
165         assertTrue(namespace1Property4.isIgnore());
166         final Namespace namespace2 = Namespaces.instance().getNamespace("spring");
167         assertNotNull(namespace2);
168         final Property namespace2Property1 = namespace2.getProperty("hibernateQueryUseNamedParameters");
169         assertNotNull(namespace2Property1);
170         assertEquals(
171             "true",
172             namespace2Property1.getValue());
173 
174         // mappings search locations
175         assertEquals(2, configuration.getMappingsSearchLocations().length);
176         assertEquals("/path/to/mappings/location1", configuration.getMappingsSearchLocations()[0].getPath());
177         assertEquals("/path/to/mappings/location2", configuration.getMappingsSearchLocations()[1].getPath());
178     }
179 }