Skip to content

Package: FeaturePathDmrSegmentGenerator_Test

FeaturePathDmrSegmentGenerator_Test

nameinstructionbranchcomplexitylinemethod
FeaturePathDmrSegmentGenerator_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%
generateSegments()
M: 0 C: 80
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 17
100%
M: 0 C: 1
100%
generateSegments_emptyDmr()
M: 0 C: 14
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
generateSegments_nullDmr()
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
generateSegments_subtypeOfFeaturePathDmr()
M: 6 C: 5
45%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 2 C: 1
33%
M: 0 C: 1
100%
generateSegments_unrelatedDmr()
M: 8 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
isApplicable_featurePathDmr()
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%
isApplicable_nullDmr()
M: 6 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 2 C: 0
0%
M: 1 C: 0
0%
isApplicable_subtypeOfFeaturePathDmr()
M: 0 C: 15
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
isApplicable_unrelatedDmr()
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%
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%

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 - 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.assertNotNull;
18: import static org.junit.Assert.assertTrue;
19: import static org.mockito.Mockito.mock;
20:
21: import java.util.List;
22:
23: import org.eclipse.emf.ecore.EClass;
24: import org.eclipse.emf.ecore.EcoreFactory;
25: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
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.VFeaturePathDomainModelReference;
29: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
30: import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
31: import org.eclipse.emf.ecp.view.spi.model.impl.VFeaturePathDomainModelReferenceImpl;
32: import org.eclipse.emfforms.core.services.databinding.testmodel.test.model.TestPackage;
33: import org.eclipse.emfforms.spi.core.services.segments.DmrSegmentGenerator;
34: import org.junit.Before;
35: import org.junit.Test;
36:
37: /**
38: * Unit tests for the {@link FeaturePathDmrSegmentGenerator}.
39: *
40: * @author Lucas Koehler
41: *
42: */
43: public class FeaturePathDmrSegmentGenerator_Test {
44:
45:         private FeaturePathDmrSegmentGenerator converter;
46:
47:         @Before
48:         public void setUp() {
49:                 converter = new FeaturePathDmrSegmentGenerator();
50:         }
51:
52:         @Test(expected = IllegalArgumentException.class)
53:         public void isApplicable_nullDmr() {
54:                 converter.isApplicable(null);
55:         }
56:
57:         @Test
58:         public void isApplicable_featurePathDmr() {
59:                 final double applicable = converter
60:                         .isApplicable(VViewFactory.eINSTANCE.createFeaturePathDomainModelReference());
61:                 assertEquals(1d, applicable, 0d);
62:         }
63:
64:         @Test
65:         public void isApplicable_unrelatedDmr() {
66:                 final double applicable = converter.isApplicable(mock(VDomainModelReference.class));
67:                 assertEquals(DmrSegmentGenerator.NOT_APPLICABLE, applicable, 0d);
68:         }
69:
70:         @Test
71:         public void isApplicable_subtypeOfFeaturePathDmr() {
72:                 final FeatureDmrSubType subtypeDmr = new FeatureDmrSubType();
73:                 final double applicable = converter.isApplicable(subtypeDmr);
74:                 assertEquals(DmrSegmentGenerator.NOT_APPLICABLE, applicable, 0d);
75:         }
76:
77:         @Test(expected = IllegalArgumentException.class)
78:         public void generateSegments_nullDmr() {
79:                 converter.generateSegments(null);
80:         }
81:
82:         @Test
83:         public void generateSegments() {
84:                 final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
85:                 dmr.getDomainModelEReferencePath().add(TestPackage.Literals.B__C);
86:                 dmr.getDomainModelEReferencePath().add(TestPackage.Literals.C__D);
87:                 dmr.setDomainModelEFeature(TestPackage.Literals.D__X);
88:
89:                 final List<VDomainModelReferenceSegment> result = converter.generateSegments(dmr);
90:
91:                 assertNotNull(result);
92:                 assertEquals(3, result.size());
93:
94:                 assertEquals(VViewPackage.Literals.FEATURE_DOMAIN_MODEL_REFERENCE_SEGMENT, result.get(0).eClass());
95:                 final VFeatureDomainModelReferenceSegment segment1 = (VFeatureDomainModelReferenceSegment) result.get(0);
96:                 assertEquals(TestPackage.Literals.B__C.getName(), segment1.getDomainModelFeature());
97:
98:                 assertEquals(VViewPackage.Literals.FEATURE_DOMAIN_MODEL_REFERENCE_SEGMENT, result.get(1).eClass());
99:                 final VFeatureDomainModelReferenceSegment segment2 = (VFeatureDomainModelReferenceSegment) result.get(1);
100:                 assertEquals(TestPackage.Literals.C__D.getName(), segment2.getDomainModelFeature());
101:
102:                 assertEquals(VViewPackage.Literals.FEATURE_DOMAIN_MODEL_REFERENCE_SEGMENT, result.get(2).eClass());
103:                 final VFeatureDomainModelReferenceSegment segment3 = (VFeatureDomainModelReferenceSegment) result.get(2);
104:                 assertEquals(TestPackage.Literals.D__X.getName(), segment3.getDomainModelFeature());
105:         }
106:
107:         @Test
108:         public void generateSegments_emptyDmr() {
109:                 final VFeaturePathDomainModelReference dmr = VViewFactory.eINSTANCE.createFeaturePathDomainModelReference();
110:                 final List<VDomainModelReferenceSegment> result = converter.generateSegments(dmr);
111:                 assertNotNull(result);
112:                 assertTrue(result.isEmpty());
113:         }
114:
115:         @Test(expected = IllegalArgumentException.class)
116:         public void generateSegments_unrelatedDmr() {
117:                 converter.generateSegments(mock(VDomainModelReference.class));
118:         }
119:
120:         @Test(expected = IllegalArgumentException.class)
121:         public void generateSegments_subtypeOfFeaturePathDmr() {
122:                 final FeatureDmrSubType subtypeDmr = new FeatureDmrSubType();
123:                 converter.generateSegments(subtypeDmr);
124:         }
125:
126:         private static class FeatureDmrSubType extends VFeaturePathDomainModelReferenceImpl {
127:
128:                 @Override
129:                 public EClass eClass() {
130:                         final EClass eClass = EcoreFactory.eINSTANCE.createEClass();
131:                         eClass.setName("FeatureDmrSubType"); //$NON-NLS-1$
132:                         eClass.getESuperTypes().add(VViewPackage.Literals.FEATURE_PATH_DOMAIN_MODEL_REFERENCE);
133:                         return eClass;
134:                 }
135:
136:         }
137: }