1 package org.andromda.core.configuration;
2
3 import java.net.URL;
4 import junit.framework.TestCase;
5
6
7
8
9
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
25 configuration.initialize();
26
27
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
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
61 assertEquals(1, configuration.getRepositories().length);
62 final Repository repository = configuration.getRepositories()[0];
63 assertNotNull(repository);
64 assertEquals("test", repository.getName());
65
66
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
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
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
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
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
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 }