Skip to content

Package: MultiSegmentConverter_Test

MultiSegmentConverter_Test

nameinstructionbranchcomplexitylinemethod
MultiSegmentConverter_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%
setUp()
M: 0 C: 16
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
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%
testConvertToListProperty()
M: 0 C: 48
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 14
100%
M: 0 C: 1
100%
testConvertToListPropertyMultiAttribute()
M: 9 C: 13
59%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testConvertToListPropertySingleAttribute()
M: 9 C: 13
59%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testConvertToListPropertySingleReference()
M: 9 C: 13
59%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testConvertToValueProperty()
M: 0 C: 48
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 14
100%
M: 0 C: 1
100%
testConvertToValuePropertyMultiAttribute()
M: 9 C: 13
59%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testConvertToValuePropertySingleAttribute()
M: 9 C: 13
59%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testConvertToValuePropertySingleReference()
M: 9 C: 13
59%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testGetSetting()
M: 0 C: 30
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testGetSettingMultiAttribute()
M: 7 C: 13
65%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testGetSettingSingleAttribute()
M: 7 C: 13
65%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testGetSettingSingleReference()
M: 7 C: 13
65%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testIsApplicable()
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
testIsApplicableNullSegment()
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
testIsApplicableWrongSegmentType()
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2018 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: * Lucas Koehler - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.internal.core.services.segments.multi;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertTrue;
18: import static org.mockito.Mockito.mock;
19:
20: import org.eclipse.emf.databinding.IEMFListProperty;
21: import org.eclipse.emf.databinding.IEMFValueProperty;
22: import org.eclipse.emf.ecore.EAttribute;
23: import org.eclipse.emf.ecore.EClass;
24: import org.eclipse.emf.ecore.EReference;
25: import org.eclipse.emf.ecore.EStructuralFeature.Setting;
26: import org.eclipse.emf.ecp.test.common.DefaultRealm;
27: import org.eclipse.emf.ecp.view.spi.model.VFeatureDomainModelReferenceSegment;
28: import org.eclipse.emf.edit.domain.EditingDomain;
29: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
30: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.D;
31: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
32: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
33: import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
34: import org.eclipse.emfforms.spi.core.services.databinding.emf.DomainModelReferenceSegmentConverterEMF;
35: import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterListResultEMF;
36: import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterValueResultEMF;
37: import org.eclipse.emfforms.view.spi.multisegment.model.VMultiDomainModelReferenceSegment;
38: import org.eclipse.emfforms.view.spi.multisegment.model.VMultisegmentFactory;
39: import org.junit.After;
40: import org.junit.Before;
41: import org.junit.Test;
42:
43: /**
44: * JUnit tests for {@link MultiSegmentConverter}. As the converter is currently implemented by
45: * extending the {@link org.eclipse.emfforms.internal.core.services.segments.featurepath.FeatureSegmentConverter
46: * FeatureSegmentConverter}, these tests only test different/extended aspects.
47: *
48: * @author Lucas Koehler
49: *
50: */
51: public class MultiSegmentConverter_Test {
52:
53:         private MultiSegmentConverter converter;
54:         private DefaultRealm realm;
55:         private EditingDomain editingDomain;
56:
57:         @Before
58:         public void setUp() {
59:                 converter = new MultiSegmentConverter();
60:                 realm = new DefaultRealm();
61:                 editingDomain = mock(EditingDomain.class);
62:         }
63:
64:         @After
65:         public void tearDown() {
66:                 realm.dispose();
67:         }
68:
69:         @Test
70:         public void testIsApplicable() {
71:                 final double applicable = converter.isApplicable(mock(VMultiDomainModelReferenceSegment.class));
72:                 assertEquals(10d, applicable, 0d);
73:         }
74:
75:         @Test
76:         public void testIsApplicableNullSegment() {
77:                 final double applicable = converter.isApplicable(null);
78:                 assertEquals(DomainModelReferenceSegmentConverterEMF.NOT_APPLICABLE, applicable, 0d);
79:         }
80:
81:         @Test
82:         public void testIsApplicableWrongSegmentType() {
83:                 final double applicable = converter.isApplicable(mock(VFeatureDomainModelReferenceSegment.class));
84:                 assertEquals(DomainModelReferenceSegmentConverterEMF.NOT_APPLICABLE, applicable, 0d);
85:         }
86:
87:         @SuppressWarnings("unchecked")
88:         @Test
89:         public void testConvertToValueProperty() throws DatabindingFailedException {
90:                 final EClass segmentRoot = TestPackage.eINSTANCE.getB();
91:                 final B b = TestFactory.eINSTANCE.createB();
92:                 final EReference feature = TestPackage.eINSTANCE.getB_CList();
93:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
94:                         .createMultiDomainModelReferenceSegment();
95:                 segment.setDomainModelFeature(feature.getName());
96:
97:                 final SegmentConverterValueResultEMF conversionResult = converter.convertToValueProperty(segment, segmentRoot,
98:                         editingDomain);
99:                 final IEMFValueProperty valueProperty = conversionResult.getValueProperty();
100:                 assertEquals(feature, valueProperty.getStructuralFeature());
101:                 assertEquals(b.getCList(), valueProperty.getValue(b));
102:                 assertTrue(conversionResult.getNextEClass().isPresent());
103:                 assertEquals(TestPackage.eINSTANCE.getC(), conversionResult.getNextEClass().get());
104:         }
105:
106:         @Test(expected = DatabindingFailedException.class)
107:         public void testConvertToValuePropertyMultiAttribute() throws DatabindingFailedException {
108:                 final EClass segmentRoot = TestPackage.eINSTANCE.getD();
109:                 final EAttribute feature = TestPackage.eINSTANCE.getD_YList();
110:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
111:                         .createMultiDomainModelReferenceSegment();
112:                 segment.setDomainModelFeature(feature.getName());
113:
114:                 converter.convertToValueProperty(segment, segmentRoot, editingDomain);
115:         }
116:
117:         @Test(expected = DatabindingFailedException.class)
118:         public void testConvertToValuePropertySingleReference() throws DatabindingFailedException {
119:                 final EClass segmentRoot = TestPackage.eINSTANCE.getB();
120:                 final EReference feature = TestPackage.eINSTANCE.getB_C();
121:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
122:                         .createMultiDomainModelReferenceSegment();
123:                 segment.setDomainModelFeature(feature.getName());
124:
125:                 converter.convertToValueProperty(segment, segmentRoot, editingDomain);
126:         }
127:
128:         @Test(expected = DatabindingFailedException.class)
129:         public void testConvertToValuePropertySingleAttribute() throws DatabindingFailedException {
130:                 final EClass segmentRoot = TestPackage.eINSTANCE.getD();
131:                 final EAttribute feature = TestPackage.eINSTANCE.getD_X();
132:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
133:                         .createMultiDomainModelReferenceSegment();
134:                 segment.setDomainModelFeature(feature.getName());
135:
136:                 converter.convertToValueProperty(segment, segmentRoot, editingDomain);
137:         }
138:
139:         @SuppressWarnings("unchecked")
140:         @Test
141:         public void testConvertToListProperty() throws DatabindingFailedException {
142:                 final EClass segmentRoot = TestPackage.eINSTANCE.getB();
143:                 final B b = TestFactory.eINSTANCE.createB();
144:                 final EReference feature = TestPackage.eINSTANCE.getB_CList();
145:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
146:                         .createMultiDomainModelReferenceSegment();
147:                 segment.setDomainModelFeature(feature.getName());
148:
149:                 final SegmentConverterListResultEMF conversionResult = converter.convertToListProperty(segment, segmentRoot,
150:                         editingDomain);
151:                 final IEMFListProperty listProperty = conversionResult.getListProperty();
152:
153:                 assertEquals(feature, listProperty.getStructuralFeature());
154:                 assertEquals(b.getCList(), listProperty.getList(b));
155:                 assertTrue(conversionResult.getNextEClass().isPresent());
156:                 assertEquals(TestPackage.eINSTANCE.getC(), conversionResult.getNextEClass().get());
157:         }
158:
159:         @Test(expected = DatabindingFailedException.class)
160:         public void testConvertToListPropertyMultiAttribute() throws DatabindingFailedException {
161:                 final EClass segmentRoot = TestPackage.eINSTANCE.getD();
162:                 final EAttribute feature = TestPackage.eINSTANCE.getD_YList();
163:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
164:                         .createMultiDomainModelReferenceSegment();
165:                 segment.setDomainModelFeature(feature.getName());
166:
167:                 converter.convertToListProperty(segment, segmentRoot, editingDomain);
168:         }
169:
170:         @Test(expected = DatabindingFailedException.class)
171:         public void testConvertToListPropertySingleReference() throws DatabindingFailedException {
172:                 final EClass segmentRoot = TestPackage.eINSTANCE.getB();
173:                 final EReference feature = TestPackage.eINSTANCE.getB_C();
174:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
175:                         .createMultiDomainModelReferenceSegment();
176:                 segment.setDomainModelFeature(feature.getName());
177:
178:                 converter.convertToListProperty(segment, segmentRoot, editingDomain);
179:         }
180:
181:         @Test(expected = DatabindingFailedException.class)
182:         public void testConvertToListPropertySingleAttribute() throws DatabindingFailedException {
183:                 final EClass segmentRoot = TestPackage.eINSTANCE.getD();
184:                 final EAttribute feature = TestPackage.eINSTANCE.getD_X();
185:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
186:                         .createMultiDomainModelReferenceSegment();
187:                 segment.setDomainModelFeature(feature.getName());
188:
189:                 converter.convertToListProperty(segment, segmentRoot, editingDomain);
190:         }
191:
192:         @Test
193:         public void testGetSetting() throws DatabindingFailedException {
194:                 final B b = TestFactory.eINSTANCE.createB();
195:                 final EReference feature = TestPackage.eINSTANCE.getB_CList();
196:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
197:                         .createMultiDomainModelReferenceSegment();
198:                 segment.setDomainModelFeature(feature.getName());
199:
200:                 final Setting setting = converter.getSetting(segment, b);
201:                 assertEquals(b.getCList(), setting.get(true));
202:                 assertEquals(feature, setting.getEStructuralFeature());
203:         }
204:
205:         @Test(expected = DatabindingFailedException.class)
206:         public void testGetSettingMultiAttribute() throws DatabindingFailedException {
207:                 final D d = TestFactory.eINSTANCE.createD();
208:                 final EAttribute feature = TestPackage.eINSTANCE.getD_YList();
209:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
210:                         .createMultiDomainModelReferenceSegment();
211:                 segment.setDomainModelFeature(feature.getName());
212:
213:                 converter.getSetting(segment, d);
214:         }
215:
216:         @Test(expected = DatabindingFailedException.class)
217:         public void testGetSettingSingleAttribute() throws DatabindingFailedException {
218:                 final D d = TestFactory.eINSTANCE.createD();
219:                 final EAttribute feature = TestPackage.eINSTANCE.getD_X();
220:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
221:                         .createMultiDomainModelReferenceSegment();
222:                 segment.setDomainModelFeature(feature.getName());
223:
224:                 converter.getSetting(segment, d);
225:         }
226:
227:         @Test(expected = DatabindingFailedException.class)
228:         public void testGetSettingSingleReference() throws DatabindingFailedException {
229:                 final B b = TestFactory.eINSTANCE.createB();
230:                 final EReference feature = TestPackage.eINSTANCE.getB_C();
231:                 final VMultiDomainModelReferenceSegment segment = VMultisegmentFactory.eINSTANCE
232:                         .createMultiDomainModelReferenceSegment();
233:                 segment.setDomainModelFeature(feature.getName());
234:
235:                 converter.getSetting(segment, b);
236:         }
237: }