Skip to content

Package: Helper_Test

Helper_Test

nameinstructionbranchcomplexitylinemethod
Helper_Test()
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%
testReferenceMapNonContainmentReference()
M: 0 C: 67
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 20
100%
M: 0 C: 1
100%
testReferenceMapReferenceCycles()
M: 0 C: 98
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 29
100%
M: 0 C: 1
100%
testReferenceMapSelfReference()
M: 0 C: 33
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 10
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2015 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: * Alexandra Buzila - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.ui.view.editor.controls.test;
15:
16: import static org.junit.Assert.assertNotNull;
17: import static org.junit.Assert.assertNull;
18: import static org.junit.Assert.assertTrue;
19:
20: import java.util.HashMap;
21:
22: import org.eclipse.emf.ecore.EClass;
23: import org.eclipse.emf.ecore.EReference;
24: import org.eclipse.emf.ecore.EcoreFactory;
25: import org.eclipse.emf.ecp.view.spi.editor.controls.Helper;
26: import org.junit.Test;
27:
28: public class Helper_Test {
29:
30:         @Test
31:         public void testReferenceMapReferenceCycles() {
32:
33:                 final EClass classA = EcoreFactory.eINSTANCE.createEClass();
34:                 final EClass classB = EcoreFactory.eINSTANCE.createEClass();
35:
36:                 final EReference b1 = EcoreFactory.eINSTANCE.createEReference();
37:                 b1.setEType(classB);
38:                 b1.setContainment(true);
39:                 final EReference b2 = EcoreFactory.eINSTANCE.createEReference();
40:                 b2.setEType(classB);
41:                 b2.setContainment(true);
42:                 classA.getEStructuralFeatures().add(b1);
43:                 classA.getEStructuralFeatures().add(b2);
44:
45:                 final EReference a1 = EcoreFactory.eINSTANCE.createEReference();
46:                 a1.setEType(classA);
47:                 a1.setContainment(true);
48:                 final EReference a2 = EcoreFactory.eINSTANCE.createEReference();
49:                 a2.setEType(classA);
50:                 a2.setContainment(true);
51:                 classB.getEStructuralFeatures().add(a1);
52:                 classB.getEStructuralFeatures().add(a2);
53:
54:                 final HashMap<EClass, EReference> childParentReferenceMap = new HashMap<EClass, EReference>();
55:                 Helper.getReferenceMap(classA, childParentReferenceMap);
56:
57:                 final EReference refA = childParentReferenceMap.get(classA);
58:                 final EReference refB = childParentReferenceMap.get(classB);
59:
60:                 assertNotNull("Reference map does not contain reference of type A.", refA);
61:                 assertNotNull("Reference map does not contain reference of type B.", refB);
62:                 assertTrue("Reference map contains reference of wrong type (refA should be of type classA).",
63:                         refA.getEType().equals(classA));
64:                 assertTrue("Reference map contains reference of wrong type (refB should be of type classB).",
65:                         refB.getEType().equals(classB));
66:
67:         }
68:
69:         @Test
70:         public void testReferenceMapNonContainmentReference() {
71:
72:                 final EClass classA = EcoreFactory.eINSTANCE.createEClass();
73:                 final EClass classB = EcoreFactory.eINSTANCE.createEClass();
74:                 final EClass classC = EcoreFactory.eINSTANCE.createEClass();
75:
76:                 final EReference b = EcoreFactory.eINSTANCE.createEReference();
77:                 b.setEType(classB);
78:                 b.setContainment(true);
79:
80:                 final EReference c = EcoreFactory.eINSTANCE.createEReference();
81:                 c.setEType(classC);
82:                 c.setContainment(false);
83:
84:                 classA.getEStructuralFeatures().add(b);
85:                 classA.getEStructuralFeatures().add(c);
86:
87:                 final HashMap<EClass, EReference> childParentReferenceMap = new HashMap<EClass, EReference>();
88:                 Helper.getReferenceMap(classA, childParentReferenceMap);
89:
90:                 final EReference refB = childParentReferenceMap.get(classB);
91:                 final EReference refC = childParentReferenceMap.get(classC);
92:
93:                 assertNotNull("Reference map does not contain reference of type B.", refB);
94:                 assertTrue("Reference map contains reference of wrong type (refA should be of type classA).",
95:                         refB.getEType().equals(classB));
96:                 assertNull("Reference map should not contain reference of type C (non containment reference).", refC);
97:
98:         }
99:
100:         @Test
101:         public void testReferenceMapSelfReference() {
102:
103:                 final EClass classA = EcoreFactory.eINSTANCE.createEClass();
104:
105:                 final EReference a1 = EcoreFactory.eINSTANCE.createEReference();
106:                 a1.setEType(classA);
107:                 a1.setContainment(true);
108:
109:                 classA.getEStructuralFeatures().add(a1);
110:
111:                 final HashMap<EClass, EReference> childParentReferenceMap = new HashMap<EClass, EReference>();
112:                 Helper.getReferenceMap(classA, childParentReferenceMap);
113:
114:                 final EReference refA = childParentReferenceMap.get(classA);
115:
116:                 assertNull("Reference map should not contain reference of type A (self reference).", refA);
117:
118:         }
119:
120: }