Skip to content

Package: DynamicContainmentTree_PTest

DynamicContainmentTree_PTest

nameinstructionbranchcomplexitylinemethod
DynamicContainmentTree_PTest()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
addItem(String, VElement, EObject)
M: 3 C: 88
97%
M: 1 C: 7
88%
M: 1 C: 4
80%
M: 1 C: 26
96%
M: 0 C: 1
100%
createDynamicContainmentTreeDomainModelReferences(EStructuralFeature, EStructuralFeature, EReference[])
M: 0 C: 29
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
createFeaturePathDomainModelReference(EStructuralFeature, EReference[])
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
removeItem(VElement, EObject)
M: 24 C: 33
58%
M: 6 C: 2
25%
M: 4 C: 1
20%
M: 2 C: 9
82%
M: 0 C: 1
100%
setUp()
M: 0 C: 124
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 32
100%
M: 0 C: 1
100%
tearDown()
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
testAddNodeToDomainNode()
M: 0 C: 39
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
testAddNodeToTestElement()
M: 0 C: 47
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testRemoveNodeFromTestElement()
M: 0 C: 25
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
testValidationErrorInit()
M: 0 C: 19
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
testValidationErrorToError()
M: 0 C: 42
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testValidationErrorToOk()
M: 0 C: 56
100%
M: 0 C: 2
100%
M: 0 C: 2
100%
M: 0 C: 10
100%
M: 0 C: 1
100%
testValidationErrorToOkByRemove()
M: 0 C: 55
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%

Coverage

1: /**
2: * Copyright (c) 2011-2013 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: * Edgar Mueller - initial API and implementation
13: */
14: package org.eclipse.emf.ecp.view.dynamictree.model.test;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertTrue;
18:
19: import java.util.Arrays;
20:
21: import org.eclipse.emf.common.util.Diagnostic;
22: import org.eclipse.emf.ecore.EObject;
23: import org.eclipse.emf.ecore.EReference;
24: import org.eclipse.emf.ecore.EStructuralFeature;
25: import org.eclipse.emf.ecore.util.EcoreUtil;
26: import org.eclipse.emf.ecp.test.common.DefaultRealm;
27: import org.eclipse.emf.ecp.view.dynamictree.model.DomainIntermediate;
28: import org.eclipse.emf.ecp.view.dynamictree.model.DomainRoot;
29: import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentItem;
30: import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentTree;
31: import org.eclipse.emf.ecp.view.dynamictree.model.DynamicContainmentTreeDomainModelReference;
32: import org.eclipse.emf.ecp.view.dynamictree.model.ModelFactory;
33: import org.eclipse.emf.ecp.view.dynamictree.model.ModelPackage;
34: import org.eclipse.emf.ecp.view.dynamictree.model.TestElement;
35: import org.eclipse.emf.ecp.view.dynamictree.model.TestElementContainer;
36: import org.eclipse.emf.ecp.view.spi.context.ViewModelContextFactory;
37: import org.eclipse.emf.ecp.view.spi.model.VContainedElement;
38: import org.eclipse.emf.ecp.view.spi.model.VControl;
39: import org.eclipse.emf.ecp.view.spi.model.VElement;
40: import org.eclipse.emf.ecp.view.spi.model.VFeaturePathDomainModelReference;
41: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
42: import org.junit.After;
43: import org.junit.Before;
44: import org.junit.Test;
45:
46: public class DynamicContainmentTree_PTest {
47:
48:         private DomainRoot root;
49:         // private Node<DynamicContainmentTree> node;
50:         private DynamicContainmentTree tree;
51:
52:         private static final String ELEMENT_CONTAINER_ID = "111";
53:         private static final String ELEMENT_ID = "222";
54:
55:         private DefaultRealm realm;
56:
57:         @Before
58:         public void setUp() throws Exception {
59:                 realm = new DefaultRealm();
60:                 root = ModelFactory.eINSTANCE.createDomainRoot();
61:                 final DomainIntermediate intermediate = ModelFactory.eINSTANCE.createDomainIntermediate();
62:                 root.setIntermediate(intermediate);
63:
64:                 final TestElementContainer elementContainer = ModelFactory.eINSTANCE.createTestElementContainer();
65:                 elementContainer.setId(ELEMENT_CONTAINER_ID);
66:                 intermediate.setTestElementContainer(elementContainer);
67:
68:                 final TestElement testElement = ModelFactory.eINSTANCE.createTestElement();
69:                 testElement.setId(ELEMENT_ID);
70:                 testElement.setParentId(ELEMENT_CONTAINER_ID);
71:                 elementContainer.getTestElements().add(testElement);
72:
73:                 tree = ModelFactory.eINSTANCE.createDynamicContainmentTree();
74:                 tree.getPathToRoot().add(ModelPackage.eINSTANCE.getDomainRoot_Intermediate());
75:                 tree.getPathToRoot().add(ModelPackage.eINSTANCE.getDomainIntermediate_TestElementContainer());
76:                 tree.setChildReference(ModelPackage.eINSTANCE.getTestElementContainer_TestElements());
77:
78:                 // used for validation
79:                 final VControl childNameControl = VViewFactory.eINSTANCE.createControl();
80:                 childNameControl.setDomainModelReference(
81:                         createDynamicContainmentTreeDomainModelReferences(
82:                                 ModelPackage.eINSTANCE.getTestElement_Name(),
83:                                 ModelPackage.eINSTANCE.getTestElementContainer_TestElements(),
84:                                 ModelPackage.eINSTANCE.getDomainRoot_Intermediate(),
85:                                 ModelPackage.eINSTANCE.getDomainIntermediate_TestElementContainer()));
86:                 tree.setChildComposite(childNameControl);
87:
88:                 // set up scoping
89:                 final VControl viewControl = VViewFactory.eINSTANCE.createControl();
90:                 final VFeaturePathDomainModelReference createFeaturePathDomainModelReference = createFeaturePathDomainModelReference(
91:                         ModelPackage.eINSTANCE.getTestElementContainer_Id(),
92:                         ModelPackage.eINSTANCE.getDomainRoot_Intermediate(),
93:                         ModelPackage.eINSTANCE.getDomainIntermediate_TestElementContainer());
94:                 viewControl.setDomainModelReference(createFeaturePathDomainModelReference);
95:                 tree.setComposite(viewControl);
96:
97:                 ViewModelContextFactory.INSTANCE.createViewModelContext(tree, root);
98:         }
99:
100:         @After
101:         public void tearDown() throws Exception {
102:                 realm.dispose();
103:         }
104:
105:         private VFeaturePathDomainModelReference createFeaturePathDomainModelReference(
106:                 EStructuralFeature feature,
107:                 EReference... references) {
108:                 final VFeaturePathDomainModelReference result = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
109:                 result.setDomainModelEFeature(feature);
110:                 result.getDomainModelEReferencePath().addAll(Arrays.asList(references));
111:                 return result;
112:         }
113:
114:         private DynamicContainmentTreeDomainModelReference createDynamicContainmentTreeDomainModelReferences(
115:                 EStructuralFeature base, EStructuralFeature rootFeature, EReference... toRoot) {
116:                 final DynamicContainmentTreeDomainModelReference reference = ModelFactory.eINSTANCE
117:                         .createDynamicContainmentTreeDomainModelReference();
118:                 final VFeaturePathDomainModelReference rootRef = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
119:                 final VFeaturePathDomainModelReference baseRef = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
120:                 rootRef.getDomainModelEReferencePath().addAll(Arrays.asList(toRoot));
121:                 rootRef.setDomainModelEFeature(rootFeature);
122:                 baseRef.setDomainModelEFeature(base);
123:                 reference.setPathFromRoot(rootRef);
124:                 reference.setPathFromBase(baseRef);
125:                 return reference;
126:         }
127:
128:         // @Test
129:         // public void testFilter() {
130:         //
131:         // final List<Node<?>> filterVisibleNodes = CategorizationFilterHelper
132:         // .filterNodes(node);
133:         //
134:         // assertEquals(1, filterVisibleNodes.size());
135:         // }
136:
137:         @Test
138:         public void testAddNodeToDomainNode() {
139:                 final String id = "123";
140:                 addItem(id, tree, tree.getDomainModel());
141:                 // final List<Node<?>> children = node.getChildren();
142:                 // final Node<?> lastChild = children.get(children.size() - 1);
143:                 final Object labelObjectOfLastChild = tree.getItems().get(tree.getItems().size() - 1).getDomainModel();
144:                 assertTrue(TestElement.class.isInstance(labelObjectOfLastChild));
145:
146:                 final TestElement testElement = (TestElement) labelObjectOfLastChild;
147:
148:                 assertEquals(id, testElement.getId());
149:                 assertEquals(ELEMENT_CONTAINER_ID, testElement.getParentId());
150:         }
151:
152:         @Test
153:         public void testValidationErrorInit() {
154:                 final String id = "123";
155:                 addItem(id, tree, tree.getDomainModel());
156:                 assertEquals("Severity must be error", Diagnostic.ERROR,
157:                         tree.getDiagnostic().getHighestSeverity());
158:         }
159:
160:         @Test
161:         public void testValidationErrorToError() {
162:                 final String id = "123";
163:                 addItem(id, tree, tree.getDomainModel());
164:                 // final List<Node<?>> children = node.getChildren();
165:                 // final Node<?> lastChild = children.get(children.size() - 1);
166:                 final Object labelObjectOfLastChild = tree.getItems().get(tree.getItems().size() - 1).getDomainModel();
167:                 assertTrue(TestElement.class.isInstance(labelObjectOfLastChild));
168:
169:                 final TestElement testElement = (TestElement) labelObjectOfLastChild;
170:                 testElement.setName("foo");
171:
172:                 assertEquals("Severity must be error", Diagnostic.ERROR,
173:                         tree.getDiagnostic().getHighestSeverity());
174:         }
175:
176:         @Test
177:         public void testValidationErrorToOkByRemove() {
178:                 assertEquals("Severity must be error", Diagnostic.ERROR,
179:                         tree.getDiagnostic().getHighestSeverity());
180:                 // final String id = "123";
181:                 // addItem(id, tree, tree.getDomainModel());
182:                 final Object labelObjectOfLastChild = tree.getItems().get(tree.getItems().size() - 1).getDomainModel();
183:                 assertTrue(TestElement.class.isInstance(labelObjectOfLastChild));
184:
185:                 final TestElement testElement = (TestElement) labelObjectOfLastChild;
186:                 final TestElementContainer container = (TestElementContainer) testElement.eContainer();
187:
188:                 container.getTestElements().clear();
189:                 // TODO remove must be somewhere else
190:                 tree.getItems().remove(tree.getItems().size() - 1);
191:
192:                 assertEquals("Severity must be ok", Diagnostic.OK,
193:                         tree.getDiagnostic().getHighestSeverity());
194:         }
195:
196:         @Test
197:         public void testValidationErrorToOk() {
198:                 final String id = "123";
199:                 addItem(id, tree, tree.getDomainModel());
200:                 final Object labelObjectOfLastChild = tree.getItems().get(tree.getItems().size() - 1).getDomainModel();
201:                 assertTrue(TestElement.class.isInstance(labelObjectOfLastChild));
202:
203:                 final TestElement testElement = (TestElement) labelObjectOfLastChild;
204:•                for (final TestElement el : ((TestElementContainer) testElement.eContainer()).getTestElements()) {
205:                         el.setName("bar");
206:                 }
207:
208:                 assertEquals("Severity must be ok", Diagnostic.OK,
209:                         tree.getDiagnostic().getHighestSeverity());
210:         }
211:
212:         @Test
213:         public void testAddNodeToTestElement() {
214:                 final String id = "123456789012";
215:                 final DynamicContainmentItem dynamicContainmentItem = tree.getItems().get(tree.getItems().size() - 1);
216:                 addItem(id, dynamicContainmentItem, dynamicContainmentItem.getDomainModel());
217:
218:                 final Object labelObject = dynamicContainmentItem.getItems().get(dynamicContainmentItem.getItems().size() - 1)
219:                         .getDomainModel();
220:                 assertTrue(TestElement.class.isInstance(labelObject));
221:
222:                 final TestElement testElement = (TestElement) labelObject;
223:
224:                 assertEquals(id, testElement.getId());
225:                 assertEquals(ELEMENT_ID, testElement.getParentId());
226:         }
227:
228:         @Test
229:         public void testRemoveNodeFromTestElement() {
230:                 final DynamicContainmentItem dynamicContainmentItem = tree.getItems().get(tree.getItems().size() - 1);
231:                 removeItem(dynamicContainmentItem, dynamicContainmentItem.getDomainModel());
232:
233:                 assertEquals(0, tree.getItems().size());
234:         }
235:
236:         private void removeItem(VElement treeItem, EObject treeItemDomain) {
237:                 final EObject eObject = treeItemDomain.eContainer();
238:•                if (TestElementContainer.class.isInstance(eObject)) {
239:                         TestElementContainer.class.cast(eObject).getTestElements().remove(treeItemDomain);
240:•                } else if (TestElement.class.isInstance(eObject)) {
241:                         TestElement.class.cast(eObject).getElements().remove(treeItemDomain);
242:                 }
243:
244:                 final EObject treeItemParent = treeItem.eContainer();
245:•                if (DynamicContainmentTree.class.isInstance(treeItemParent)) {
246:                         DynamicContainmentTree.class.cast(treeItemParent).getItems().remove(treeItem);
247:•                } else if (DynamicContainmentItem.class.isInstance(treeItemParent)) {
248:                         DynamicContainmentItem.class.cast(treeItemParent).getItems().remove(treeItem);
249:                 }
250:
251:         }
252:
253:         public static DynamicContainmentItem addItem(String id, VElement viewModelParent, EObject virtualParent) {
254:
255:                 final TestElement newValue = ModelFactory.eINSTANCE.createTestElement();
256:                 newValue.setParentId((String) virtualParent.eGet(virtualParent
257:                         .eClass().getEStructuralFeature("id")));
258:                 newValue.setId(id);
259:
260:                 VElement renderable = null;
261:                 DynamicContainmentTree tree = null;
262:
263:•                if (!TestElementContainer.class.isInstance(virtualParent)) {
264:                         virtualParent = virtualParent.eContainer();
265:                         final DynamicContainmentItem item = (DynamicContainmentItem) viewModelParent;
266:
267:                         EObject parent = item.eContainer();
268:•                        while (!DynamicContainmentTree.class.isInstance(parent)) {
269:                                 parent = parent.eContainer();
270:                         }
271:                         tree = (DynamicContainmentTree) parent;
272:                 }
273:
274:•                if (tree == null) {
275:                         tree = (DynamicContainmentTree) viewModelParent;
276:                 }
277:                 tree.getActions();
278:                 renderable = tree.getChildComposite();
279:
280:                 final DynamicContainmentItem pi = ModelFactory.eINSTANCE.createDynamicContainmentItem();
281:                 pi.setComposite((VContainedElement) EcoreUtil.copy(renderable));
282:                 pi.setDomainModel(newValue);
283:•                if (DynamicContainmentItem.class.isInstance(viewModelParent)) {
284:                         final DynamicContainmentItem parent = (DynamicContainmentItem) viewModelParent;
285:                         parent.getItems().add(pi);
286:                 } else {
287:                         tree.getItems().add(pi);
288:                 }
289:
290:                 ((TestElementContainer) virtualParent).getTestElements().add(newValue);
291:                 return pi;
292:         }
293:
294: }