Skip to content

Package: ViewModelFileExtensionsManager_ITest

ViewModelFileExtensionsManager_ITest

nameinstructionbranchcomplexitylinemethod
ViewModelFileExtensionsManager_ITest(Set, boolean)
M: 0 C: 13
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
init()
M: 0 C: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
parameters()
M: 0 C: 33
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
testCreateViewModelFittingProperties()
M: 0 C: 67
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 18
100%
M: 0 C: 1
100%
testCreateViewModelHigherPrioFittingProperties()
M: 0 C: 110
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 25
100%
M: 0 C: 1
100%
testCreateViewModelHigherPrioFittingProperties2()
M: 0 C: 98
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 22
100%
M: 0 C: 1
100%
testCreateViewModelHigherPrioFittingProperties3()
M: 0 C: 98
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 22
100%
M: 0 C: 1
100%
testCreateViewModelNoProperties()
M: 0 C: 51
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 15
100%
M: 0 C: 1
100%
testCreateViewModelUnFittingProperties()
M: 0 C: 39
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testGetExtensionURIs()
M: 0 C: 25
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
testHasViewModelForFilterInheritablePropertyNotFit()
M: 0 C: 45
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testHasViewModelForFilterInheritablePropertyNotFit2()
M: 0 C: 62
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 14
100%
M: 0 C: 1
100%
testHasViewModelForFilterNonInheritablePropertyNotFit()
M: 0 C: 45
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testHasViewModelForFilterNonInheritablePropertyNotFit2()
M: 0 C: 62
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 14
100%
M: 0 C: 1
100%
testHasViewModelForNoFilterEmptyProperty()
M: 0 C: 41
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testHasViewModelForNoFilterNullProperties()
M: 0 C: 40
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
testHasViewModelForNoFilterWithInheritableProperty()
M: 0 C: 48
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testHasViewModelForNoFilterWithNonInheritableProperty()
M: 0 C: 48
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testHasViewModelForWithFilterEmptyProperties()
M: 0 C: 38
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testHasViewModelForWithFilterNullProperties()
M: 0 C: 37
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
testHasViewModelForWithFilterWithInheritableProperty()
M: 0 C: 50
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testHasViewModelForWithFilterWithNonInheritableProperty()
M: 0 C: 50
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
uri(String)
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2019 EclipseSource Muenchen GmbH and others.
3: *
4: * All rights reserved. This program and the accompanying materials
5: * are made available under the terms of the Eclipse Public License 2.0
6: * which accompanies this distribution, and is available at
7: * https://www.eclipse.org/legal/epl-2.0/
8: *
9: * SPDX-License-Identifier: EPL-2.0
10: *
11: * Contributors:
12: * Jonas - initial API and implementation
13: * Christian W. Damus - bug 547787
14: ******************************************************************************/
15: package org.eclipse.emf.ecp.view.model.provider.xmi;
16:
17: import static org.hamcrest.CoreMatchers.is;
18: import static org.hamcrest.CoreMatchers.notNullValue;
19: import static org.hamcrest.CoreMatchers.nullValue;
20: import static org.hamcrest.MatcherAssert.assertThat;
21: import static org.junit.Assert.assertEquals;
22: import static org.junit.Assert.assertFalse;
23: import static org.junit.Assert.assertNotNull;
24: import static org.junit.Assert.assertNull;
25: import static org.junit.Assert.assertTrue;
26: import static org.mockito.Mockito.mock;
27: import static org.mockito.Mockito.when;
28:
29: import java.io.IOException;
30: import java.util.Arrays;
31: import java.util.Collections;
32: import java.util.LinkedHashMap;
33: import java.util.List;
34: import java.util.Map;
35: import java.util.Set;
36:
37: import org.eclipse.emf.common.util.URI;
38: import org.eclipse.emf.ecore.EClass;
39: import org.eclipse.emf.ecore.EObject;
40: import org.eclipse.emf.ecore.util.EcoreUtil;
41: import org.eclipse.emf.ecp.view.model.provider.xmi.ViewModelFileExtensionsManager.ExtensionDescription;
42: import org.eclipse.emf.ecp.view.spi.model.VView;
43: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
44: import org.eclipse.emf.ecp.view.spi.model.VViewModelLoadingProperties;
45: import org.eclipse.emf.emfstore.bowling.BowlingPackage;
46: import org.junit.Before;
47: import org.junit.Test;
48: import org.junit.runner.RunWith;
49: import org.junit.runners.Parameterized;
50: import org.junit.runners.Parameterized.Parameters;
51:
52: /**
53: * @author Jonas
54: *
55: */
56: @RunWith(Parameterized.class)
57: public class ViewModelFileExtensionsManager_ITest {
58:
59:         private static final String FILEPATH = "viewmodel.view";
60:         // private static final String FILEPATH2 = "viewmodel2.view";
61:
62:         private static final String VIEWNAME = "the view name";
63:         private ViewModelFileExtensionsManager manager;
64:         private final EClass eClass1 = BowlingPackage.eINSTANCE.getLeague();
65:
66:         /** Test parameter for keys to require matching in the view look-up. */
67:         private final Set<String> requiredKeys;
68:
69:         /**
70:          * Test parameter for whether the look-up is expected to match the required keys.
71:          * <strong>Note</strong> that many tests are not sensitive to the required keys at all,
72:          * so they may not make assertions on the basis of this expectation. Its purpose is to
73:          * control tests that are sensitive to the specification of required keys.
74:          */
75:         private final boolean expectProvided;
76:
77:         public ViewModelFileExtensionsManager_ITest(Set<String> requiredKeys, boolean expectProvided) {
78:                 super();
79:
80:                 this.requiredKeys = requiredKeys;
81:                 this.expectProvided = expectProvided;
82:         }
83:
84:         @Parameters(name = "requiredKeys={0}")
85:         public static Iterable<Object[]> parameters() {
86:                 return Arrays.asList(new Object[][] {
87:                         { Collections.emptySet(), true },
88:                         { Collections.singleton("a"), false },
89:                 });
90:         }
91:
92:         @Before
93:         public void init() throws IOException {
94:                 ViewModelFileExtensionsManager.dispose();
95:                 manager = ViewModelFileExtensionsManager.getInstance();
96:         }
97:
98:         // @Test
99:         // public void testGetExtensionURIs() {
100:         // final Map<URI, ExtensionDescription> extensionURIS = ViewModelFileExtensionsManager.getExtensionURIS();
101:         // assertEquals(2, extensionURIS.size());
102:         // final Set<URI> keySet = extensionURIS.keySet();
103:         // assertTrue(keySet.contains(uri(FILEPATH)));
104:         // assertTrue(keySet.contains(uri(FILEPATH2)));
105:         // }
106:         // private static URI uri(String filepath) {
107:         // return URI.createPlatformPluginURI("org.eclipse.emf.ecp.view.model.provider.xmi"
108:         // + "/" + filepath, false);
109:         // }
110:
111:         @Test
112:         public void testGetExtensionURIs() {
113:                 final Map<URI, List<ExtensionDescription>> extensionURIS = ViewModelFileExtensionsManager.getExtensionURIS();
114:                 assertEquals(1, extensionURIS.size());
115:                 final Set<URI> keySet = extensionURIS.keySet();
116:                 assertTrue(keySet.contains(uri(FILEPATH)));
117:
118:                 assertEquals(2, extensionURIS.get(uri(FILEPATH)).size());
119:         }
120:
121:         private static URI uri(String filepath) {
122:                 return URI.createPlatformPluginURI("org.eclipse.emf.ecp.view.model.provider.xmi"
123:                         + "/" + filepath, false);
124:         }
125:
126:         @Test
127:         public void testHasViewModelForNoFilterNullProperties() {
128:                 final VView view = mock(VView.class);
129:                 when(view.getRootEClass()).thenReturn(eClass1);
130:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
131:                         Collections.<String, String> emptyMap(), "");
132:                 manager.registerView(view, extensionDescription);
133:                 final EObject eObject = EcoreUtil.create(eClass1);
134:
135:                 assertThat(manager.hasViewModelFor(eObject, null, requiredKeys), is(expectProvided));
136:         }
137:
138:         @Test
139:         public void testHasViewModelForNoFilterEmptyProperty() {
140:                 final VView view = mock(VView.class);
141:                 when(view.getRootEClass()).thenReturn(eClass1);
142:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
143:                         Collections.<String, String> emptyMap(), "");
144:                 manager.registerView(view, extensionDescription);
145:                 final EObject eObject = EcoreUtil.create(eClass1);
146:                 assertThat(
147:                         manager.hasViewModelFor(eObject, VViewFactory.eINSTANCE.createViewModelLoadingProperties(), requiredKeys),
148:                         is(expectProvided));
149:         }
150:
151:         @Test
152:         public void testHasViewModelForNoFilterWithInheritableProperty() {
153:                 final VView view = mock(VView.class);
154:                 when(view.getRootEClass()).thenReturn(eClass1);
155:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
156:                         Collections.<String, String> emptyMap(), "");
157:                 manager.registerView(view, extensionDescription);
158:                 final EObject eObject = EcoreUtil.create(eClass1);
159:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
160:                         .createViewModelLoadingProperties();
161:                 viewModelLoadingProperties.addInheritableProperty("key", "value");
162:
163:                 assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
164:                         is(expectProvided));
165:         }
166:
167:         @Test
168:         public void testHasViewModelForNoFilterWithNonInheritableProperty() {
169:                 final VView view = mock(VView.class);
170:                 when(view.getRootEClass()).thenReturn(eClass1);
171:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
172:                         Collections.<String, String> emptyMap(), "");
173:                 manager.registerView(view, extensionDescription);
174:                 final EObject eObject = EcoreUtil.create(eClass1);
175:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
176:                         .createViewModelLoadingProperties();
177:                 viewModelLoadingProperties.addNonInheritableProperty("key", "value");
178:
179:                 assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
180:                         is(expectProvided));
181:         }
182:
183:         @Test
184:         public void testHasViewModelForWithFilterNullProperties() {
185:                 final VView view = mock(VView.class);
186:                 when(view.getRootEClass()).thenReturn(eClass1);
187:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
188:                         Collections.singletonMap("key", "value"), "");
189:                 manager.registerView(view, extensionDescription);
190:                 final EObject eObject = EcoreUtil.create(eClass1);
191:                 assertFalse(manager.hasViewModelFor(eObject, null, requiredKeys));
192:         }
193:
194:         @Test
195:         public void testHasViewModelForWithFilterEmptyProperties() {
196:                 final VView view = mock(VView.class);
197:                 when(view.getRootEClass()).thenReturn(eClass1);
198:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
199:                         Collections.singletonMap("key", "value"), "");
200:                 manager.registerView(view, extensionDescription);
201:                 final EObject eObject = EcoreUtil.create(eClass1);
202:                 assertFalse(
203:                         manager.hasViewModelFor(eObject, VViewFactory.eINSTANCE.createViewModelLoadingProperties(), requiredKeys));
204:         }
205:
206:         @Test
207:         public void testHasViewModelForWithFilterWithInheritableProperty() {
208:                 final VView view = mock(VView.class);
209:                 when(view.getRootEClass()).thenReturn(eClass1);
210:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
211:                         Collections.singletonMap("key", "value"), "");
212:                 manager.registerView(view, extensionDescription);
213:                 final EObject eObject = EcoreUtil.create(eClass1);
214:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
215:                         .createViewModelLoadingProperties();
216:                 viewModelLoadingProperties.addInheritableProperty("key", "value");
217:
218:                 assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
219:                         is(expectProvided));
220:         }
221:
222:         @Test
223:         public void testHasViewModelForWithFilterWithNonInheritableProperty() {
224:                 final VView view = mock(VView.class);
225:                 when(view.getRootEClass()).thenReturn(eClass1);
226:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
227:                         Collections.singletonMap("key", "value"), "");
228:                 manager.registerView(view, extensionDescription);
229:                 final EObject eObject = EcoreUtil.create(eClass1);
230:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
231:                         .createViewModelLoadingProperties();
232:                 viewModelLoadingProperties.addNonInheritableProperty("key", "value");
233:
234:                 assertThat(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys),
235:                         is(expectProvided));
236:         }
237:
238:         @Test
239:         public void testHasViewModelForFilterInheritablePropertyNotFit() {
240:                 final VView view = mock(VView.class);
241:                 when(view.getRootEClass()).thenReturn(eClass1);
242:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
243:                         Collections.singletonMap("key1", "value"), "");
244:                 manager.registerView(view, extensionDescription);
245:                 final EObject eObject = EcoreUtil.create(eClass1);
246:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
247:                         .createViewModelLoadingProperties();
248:                 viewModelLoadingProperties.addInheritableProperty("key", "value");
249:                 assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
250:         }
251:
252:         @Test
253:         public void testHasViewModelForFilterNonInheritablePropertyNotFit() {
254:                 final VView view = mock(VView.class);
255:                 when(view.getRootEClass()).thenReturn(eClass1);
256:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
257:                         Collections.singletonMap("key1", "value"), "");
258:                 manager.registerView(view, extensionDescription);
259:                 final EObject eObject = EcoreUtil.create(eClass1);
260:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
261:                         .createViewModelLoadingProperties();
262:                 viewModelLoadingProperties.addNonInheritableProperty("key", "value");
263:                 assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
264:         }
265:
266:         @Test
267:         public void testHasViewModelForFilterInheritablePropertyNotFit2() {
268:                 final VView view = mock(VView.class);
269:                 when(view.getRootEClass()).thenReturn(eClass1);
270:                 final Map<String, String> filter = new LinkedHashMap<String, String>();
271:                 filter.put("key", "value");
272:                 filter.put("key11", "value");
273:                 final ExtensionDescription extensionDescription = new ExtensionDescription(filter, "");
274:                 manager.registerView(view, extensionDescription);
275:                 final EObject eObject = EcoreUtil.create(eClass1);
276:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
277:                         .createViewModelLoadingProperties();
278:                 viewModelLoadingProperties.addInheritableProperty("key", "value");
279:                 viewModelLoadingProperties.addInheritableProperty("key1", "value");
280:                 assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
281:         }
282:
283:         @Test
284:         public void testHasViewModelForFilterNonInheritablePropertyNotFit2() {
285:                 final VView view = mock(VView.class);
286:                 when(view.getRootEClass()).thenReturn(eClass1);
287:                 final Map<String, String> filter = new LinkedHashMap<String, String>();
288:                 filter.put("key", "value");
289:                 filter.put("key11", "value");
290:                 final ExtensionDescription extensionDescription = new ExtensionDescription(filter, "");
291:                 manager.registerView(view, extensionDescription);
292:                 final EObject eObject = EcoreUtil.create(eClass1);
293:                 final VViewModelLoadingProperties viewModelLoadingProperties = VViewFactory.eINSTANCE
294:                         .createViewModelLoadingProperties();
295:                 viewModelLoadingProperties.addNonInheritableProperty("key", "value");
296:                 viewModelLoadingProperties.addNonInheritableProperty("key1", "value");
297:                 assertFalse(manager.hasViewModelFor(eObject, viewModelLoadingProperties, requiredKeys));
298:         }
299:
300:         @Test
301:         public void testCreateViewModelNoProperties() {
302:                 final VView view = VViewFactory.eINSTANCE.createView();
303:                 view.setRootEClass(eClass1);
304:                 view.setName(VIEWNAME);
305:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
306:                         Collections.<String, String> emptyMap(), "");
307:                 manager.registerView(view, extensionDescription);
308:                 final EObject eObject = EcoreUtil.create(eClass1);
309:                 final VView foundView = manager.createView(eObject, null, requiredKeys);
310:
311:•                if (expectProvided) {
312:                         assertThat(foundView, notNullValue());
313:                         assertNull(view.getLoadingProperties());
314:                         assertEquals(VIEWNAME, foundView.getName());
315:                 } else {
316:                         assertThat(foundView, nullValue());
317:                 }
318:         }
319:
320:         @Test
321:         public void testCreateViewModelFittingProperties() {
322:                 final VView view = VViewFactory.eINSTANCE.createView();
323:                 view.setRootEClass(eClass1);
324:                 view.setName(VIEWNAME);
325:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
326:                         Collections.singletonMap("key", "value"), "");
327:                 manager.registerView(view, extensionDescription);
328:                 final EObject eObject = EcoreUtil.create(eClass1);
329:
330:                 final VViewModelLoadingProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
331:                 properties.addInheritableProperty("key", "value");
332:
333:                 final VView foundView = manager.createView(eObject, properties, requiredKeys);
334:
335:•                if (expectProvided) {
336:                         assertThat(foundView, notNullValue());
337:                         assertNotNull(foundView.getLoadingProperties());
338:                         assertEquals("value", foundView.getLoadingProperties().get("key"));
339:                         assertEquals(VIEWNAME, foundView.getName());
340:                 } else {
341:                         assertThat(foundView, nullValue());
342:                 }
343:         }
344:
345:         @Test
346:         public void testCreateViewModelUnFittingProperties() {
347:                 final VView view = VViewFactory.eINSTANCE.createView();
348:                 view.setRootEClass(eClass1);
349:                 view.setName(VIEWNAME);
350:                 final ExtensionDescription extensionDescription = new ExtensionDescription(
351:                         Collections.singletonMap("key", "value"), "");
352:                 manager.registerView(view, extensionDescription);
353:                 final EObject eObject = EcoreUtil.create(eClass1);
354:
355:                 final VViewModelLoadingProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
356:
357:                 assertNull(manager.createView(eObject, properties, requiredKeys));
358:         }
359:
360:         @Test
361:         public void testCreateViewModelHigherPrioFittingProperties() {
362:                 final VView view1 = VViewFactory.eINSTANCE.createView();
363:                 view1.setRootEClass(eClass1);
364:                 view1.setName(VIEWNAME + "1");
365:                 final Map<String, String> filter1 = new LinkedHashMap<String, String>();
366:                 filter1.put("a", "value");
367:
368:                 final ExtensionDescription extensionDescription1 = new ExtensionDescription(filter1, "");
369:                 manager.registerView(view1, extensionDescription1);
370:
371:                 final VView view2 = VViewFactory.eINSTANCE.createView();
372:                 view2.setRootEClass(eClass1);
373:                 view2.setName(VIEWNAME + "2");
374:                 final Map<String, String> filter2 = new LinkedHashMap<String, String>();
375:                 filter2.put("a", "value");
376:                 filter2.put("b", "value");
377:
378:                 final ExtensionDescription extensionDescription2 = new ExtensionDescription(filter2, "");
379:                 manager.registerView(view2, extensionDescription2);
380:
381:                 final EObject eObject = EcoreUtil.create(eClass1);
382:
383:                 final VViewModelLoadingProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
384:                 properties.addInheritableProperty("a", "value");
385:                 properties.addInheritableProperty("b", "value");
386:
387:                 final VView foundView = manager.createView(eObject, properties, requiredKeys);
388:                 assertNotNull(foundView.getLoadingProperties());
389:                 assertEquals("value", foundView.getLoadingProperties().get("a"));
390:                 assertEquals("value", foundView.getLoadingProperties().get("b"));
391:                 assertEquals(VIEWNAME + "2", foundView.getName());
392:         }
393:
394:         @Test
395:         public void testCreateViewModelHigherPrioFittingProperties2() {
396:                 final VView view = VViewFactory.eINSTANCE.createView();
397:                 view.setRootEClass(eClass1);
398:                 view.setName(VIEWNAME);
399:                 final Map<String, String> filter1 = new LinkedHashMap<String, String>();
400:                 filter1.put("a", "value");
401:                 filter1.put("b", "value");
402:
403:                 final ExtensionDescription extensionDescription1 = new ExtensionDescription(filter1, "");
404:                 manager.registerView(view, extensionDescription1);
405:
406:                 final Map<String, String> filter2 = new LinkedHashMap<String, String>();
407:                 filter2.put("z", "value");
408:
409:                 final ExtensionDescription extensionDescription2 = new ExtensionDescription(filter2, "");
410:                 manager.registerView(view, extensionDescription2);
411:
412:                 final EObject eObject = EcoreUtil.create(eClass1);
413:
414:                 final VViewModelLoadingProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
415:                 properties.addInheritableProperty("a", "value");
416:                 properties.addInheritableProperty("b", "value");
417:
418:                 final VView foundView = manager.createView(eObject, properties, requiredKeys);
419:                 assertNotNull(foundView);
420:                 assertNotNull(foundView.getLoadingProperties());
421:                 assertEquals("value", foundView.getLoadingProperties().get("a"));
422:                 assertEquals("value", foundView.getLoadingProperties().get("b"));
423:         }
424:
425:         @Test
426:         public void testCreateViewModelHigherPrioFittingProperties3() {
427:                 final VView view = VViewFactory.eINSTANCE.createView();
428:                 view.setRootEClass(eClass1);
429:                 view.setName(VIEWNAME);
430:                 final Map<String, String> filter1 = new LinkedHashMap<String, String>();
431:                 filter1.put("z", "value");
432:
433:                 final ExtensionDescription extensionDescription1 = new ExtensionDescription(filter1, "");
434:                 manager.registerView(view, extensionDescription1);
435:
436:                 final Map<String, String> filter2 = new LinkedHashMap<String, String>();
437:                 filter2.put("a", "value");
438:                 filter2.put("b", "value");
439:
440:                 final ExtensionDescription extensionDescription2 = new ExtensionDescription(filter2, "");
441:                 manager.registerView(view, extensionDescription2);
442:
443:                 final EObject eObject = EcoreUtil.create(eClass1);
444:
445:                 final VViewModelLoadingProperties properties = VViewFactory.eINSTANCE.createViewModelLoadingProperties();
446:                 properties.addInheritableProperty("a", "value");
447:                 properties.addInheritableProperty("b", "value");
448:
449:                 final VView foundView = manager.createView(eObject, properties, requiredKeys);
450:                 assertNotNull(foundView);
451:                 assertNotNull(foundView.getLoadingProperties());
452:                 assertEquals("value", foundView.getLoadingProperties().get("a"));
453:                 assertEquals("value", foundView.getLoadingProperties().get("b"));
454:         }
455: }