Skip to content

Package: FeatureSegmentConverter_Test

FeatureSegmentConverter_Test

nameinstructionbranchcomplexitylinemethod
FeatureSegmentConverter_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%
convertToListProperty_subClassFeature()
M: 0 C: 25
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
convertToValueProperty_subClassFeature()
M: 0 C: 25
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
getEditingDomain(EObject)
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: 6
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: 37
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testConvertToListPropertyFeatureNotInEClass()
M: 11 C: 13
54%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testConvertToValueProperty()
M: 0 C: 37
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testConvertToValuePropertyFeatureNotInEClass()
M: 11 C: 13
54%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 5
71%
M: 0 C: 1
100%
testGetSetting()
M: 0 C: 28
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testIsApplicable()
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
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.featurepath;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertSame;
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.EObject;
23: import org.eclipse.emf.ecore.EReference;
24: import org.eclipse.emf.ecore.EStructuralFeature.Setting;
25: import org.eclipse.emf.ecore.InternalEObject;
26: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReferenceSegment;
27: import org.eclipse.emf.ecp.view.spi.model.VFeatureDomainModelReferenceSegment;
28: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
29: import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain;
30: import org.eclipse.emf.edit.domain.EditingDomain;
31: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.A;
32: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.B;
33: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.C;
34: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestFactory;
35: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
36: import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
37: import org.eclipse.emfforms.spi.core.services.databinding.emf.DomainModelReferenceSegmentConverterEMF;
38: import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterListResultEMF;
39: import org.eclipse.emfforms.spi.core.services.databinding.emf.SegmentConverterValueResultEMF;
40: import org.junit.Before;
41: import org.junit.Test;
42:
43: /**
44: * JUnit test cases for {@link FeatureSegmentConverter}.
45: *
46: * @author Lucas Koehler
47: *
48: */
49: public class FeatureSegmentConverter_Test {
50:
51:         private FeatureSegmentConverter converter;
52:
53:         @Before
54:         public void setUp() {
55:                 converter = new FeatureSegmentConverter();
56:         }
57:
58:         @Test
59:         public void testIsApplicable() {
60:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
61:                         .createFeatureDomainModelReferenceSegment();
62:                 assertEquals(1d, converter.isApplicable(segment), 0d);
63:         }
64:
65:         @Test
66:         public void testIsApplicableWrongSegmentType() {
67:                 final VDomainModelReferenceSegment segment = mock(VDomainModelReferenceSegment.class);
68:                 assertEquals(DomainModelReferenceSegmentConverterEMF.NOT_APPLICABLE, converter.isApplicable(segment), 0d);
69:         }
70:
71:         @Test
72:         public void testConvertToValueProperty() throws DatabindingFailedException {
73:                 final A a = TestFactory.eINSTANCE.createA();
74:                 final EReference reference = TestPackage.eINSTANCE.getA_B();
75:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
76:                         .createFeatureDomainModelReferenceSegment();
77:                 segment.setDomainModelFeature(reference.getName());
78:
79:                 final SegmentConverterValueResultEMF conversionResult = converter.convertToValueProperty(segment, a.eClass(),
80:                         getEditingDomain(a));
81:                 final IEMFValueProperty property = conversionResult.getValueProperty();
82:
83:                 assertEquals("A.b<B>", property.toString()); //$NON-NLS-1$
84:                 assertEquals(TestPackage.eINSTANCE.getB(), conversionResult.getNextEClass().get());
85:         }
86:
87:         @Test(expected = DatabindingFailedException.class)
88:         public void testConvertToValuePropertyFeatureNotInEClass() throws DatabindingFailedException {
89:                 final C c = TestFactory.eINSTANCE.createC();
90:                 final EReference reference = TestPackage.eINSTANCE.getA_B();
91:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
92:                         .createFeatureDomainModelReferenceSegment();
93:                 segment.setDomainModelFeature(reference.getName());
94:
95:                 converter.convertToValueProperty(segment, c.eClass(), getEditingDomain(c));
96:         }
97:
98:         @Test
99:         public void testConvertToListProperty() throws DatabindingFailedException {
100:                 final B b = TestFactory.eINSTANCE.createB();
101:                 final EReference reference = TestPackage.eINSTANCE.getB_CList();
102:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
103:                         .createFeatureDomainModelReferenceSegment();
104:                 segment.setDomainModelFeature(reference.getName());
105:
106:                 final SegmentConverterListResultEMF conversionResult = converter.convertToListProperty(segment, b.eClass(),
107:                         getEditingDomain(b));
108:                 final IEMFListProperty property = conversionResult.getListProperty();
109:
110:                 assertEquals("B.cList[]<C>", property.toString()); //$NON-NLS-1$
111:                 assertEquals(TestPackage.eINSTANCE.getC(), conversionResult.getNextEClass().get());
112:         }
113:
114:         @Test(expected = DatabindingFailedException.class)
115:         public void testConvertToListPropertyFeatureNotInEClass() throws DatabindingFailedException {
116:                 final C c = TestFactory.eINSTANCE.createC();
117:                 final EReference reference = TestPackage.eINSTANCE.getB_CList();
118:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
119:                         .createFeatureDomainModelReferenceSegment();
120:                 segment.setDomainModelFeature(reference.getName());
121:
122:                 converter.convertToListProperty(segment, c.eClass(), getEditingDomain(c));
123:         }
124:
125:         @Test
126:         public void testGetSetting() throws DatabindingFailedException {
127:                 final B b = TestFactory.eINSTANCE.createB();
128:                 final EReference reference = TestPackage.eINSTANCE.getB_CList();
129:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
130:                         .createFeatureDomainModelReferenceSegment();
131:                 segment.setDomainModelFeature(reference.getName());
132:
133:                 final Setting result = converter.getSetting(segment, b);
134:                 final Setting expected = ((InternalEObject) b).eSetting(reference);
135:
136:                 assertEquals(expected, result);
137:         }
138:
139:         @Test
140:         public void convertToListProperty_subClassFeature() throws DatabindingFailedException {
141:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
142:                         .createFeatureDomainModelReferenceSegment();
143:                 segment.setDomainModelFeature(TestPackage.Literals.A__BLIST.getName());
144:
145:                 final SegmentConverterListResultEMF conversionResult = converter.convertToListProperty(segment,
146:                         TestPackage.Literals.E, null);
147:                 assertSame(TestPackage.Literals.B, conversionResult.getNextEClass().get());
148:                 assertEquals("A.bList[]<B>", conversionResult.getListProperty().toString()); //$NON-NLS-1$
149:         }
150:
151:         @Test
152:         public void convertToValueProperty_subClassFeature() throws DatabindingFailedException {
153:                 final VFeatureDomainModelReferenceSegment segment = VViewFactory.eINSTANCE
154:                         .createFeatureDomainModelReferenceSegment();
155:                 segment.setDomainModelFeature(TestPackage.Literals.A__B.getName());
156:
157:                 final SegmentConverterValueResultEMF conversionResult = converter.convertToValueProperty(segment,
158:                         TestPackage.Literals.E, null);
159:                 assertSame(TestPackage.Literals.B, conversionResult.getNextEClass().get());
160:                 assertEquals("A.b<B>", conversionResult.getValueProperty().toString()); //$NON-NLS-1$
161:         }
162:
163:         private EditingDomain getEditingDomain(EObject object) {
164:                 return AdapterFactoryEditingDomain.getEditingDomainFor(object);
165:         }
166: }