Skip to content

Package: ViewModelElementSelector_Test

ViewModelElementSelector_Test

nameinstructionbranchcomplexitylinemethod
ViewModelElementSelector_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: 5
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
testApplicableCorrectClassNoSubclasses()
M: 0 C: 33
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testApplicableCorrectClassWithSubclasses()
M: 0 C: 47
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testApplicableCorrectClassWithSubclassesNoAttribute()
M: 0 C: 39
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testApplicableCorrectClassWithSubclassesWrongAttribute()
M: 0 C: 49
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testApplicableCorrectClassWithSubclassesWrongAttributeValue()
M: 0 C: 48
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testApplicableWrongClassNoSubclasses()
M: 0 C: 33
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testApplicableWrongClassWithSubclasses()
M: 0 C: 33
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2014 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: * eugen - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.template.service;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.mockito.Mockito.mock;
18: import static org.mockito.Mockito.when;
19:
20: import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
21: import org.eclipse.emf.ecp.view.spi.label.model.VLabel;
22: import org.eclipse.emf.ecp.view.spi.label.model.VLabelPackage;
23: import org.eclipse.emf.ecp.view.spi.label.model.VLabelStyle;
24: import org.eclipse.emf.ecp.view.spi.model.VViewPackage;
25: import org.eclipse.emf.ecp.view.template.model.VTStyleSelector;
26: import org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.VTViewModelElementFactory;
27: import org.eclipse.emf.ecp.view.template.selector.viewModelElement.model.VTViewModelElementSelector;
28: import org.junit.Before;
29: import org.junit.Test;
30:
31: /**
32: * @author eugen
33: *
34: */
35: public class ViewModelElementSelector_Test {
36:
37:         private VTViewModelElementSelector viewModelElementSelector;
38:
39:         @Before
40:         public void setup() {
41:                 viewModelElementSelector = VTViewModelElementFactory.eINSTANCE.createViewModelElementSelector();
42:         }
43:
44:         @Test
45:         public void testApplicableWrongClassNoSubclasses() {
46:                 viewModelElementSelector.setClassType(VViewPackage.eINSTANCE.getDiagnostic());
47:                 viewModelElementSelector.setSelectSubclasses(false);
48:                 final VLabel label = mock(VLabel.class);
49:                 when(label.eClass()).thenReturn(VLabelPackage.Literals.LABEL);
50:                 final double specificity = viewModelElementSelector.isApplicable(
51:                         label, mock(ViewModelContext.class));
52:                 assertEquals(VTStyleSelector.NOT_APPLICABLE.doubleValue(), specificity,
53:                         0d);
54:         }
55:
56:         @Test
57:         public void testApplicableWrongClassWithSubclasses() {
58:                 viewModelElementSelector.setClassType(VViewPackage.eINSTANCE.getDiagnostic());
59:                 viewModelElementSelector.setSelectSubclasses(true);
60:                 final VLabel label = mock(VLabel.class);
61:                 when(label.eClass()).thenReturn(VLabelPackage.Literals.LABEL);
62:                 final double specificity = viewModelElementSelector.isApplicable(
63:                         label, mock(ViewModelContext.class));
64:                 assertEquals(VTStyleSelector.NOT_APPLICABLE.doubleValue(), specificity,
65:                         0d);
66:         }
67:
68:         @Test
69:         public void testApplicableCorrectClassNoSubclasses() {
70:                 viewModelElementSelector.setClassType(VViewPackage.eINSTANCE.getElement());
71:                 viewModelElementSelector.setSelectSubclasses(false);
72:                 final VLabel label = mock(VLabel.class);
73:                 when(label.eClass()).thenReturn(VLabelPackage.Literals.LABEL);
74:                 final double specificity = viewModelElementSelector.isApplicable(
75:                         label, mock(ViewModelContext.class));
76:                 assertEquals(VTStyleSelector.NOT_APPLICABLE.doubleValue(), specificity,
77:                         0d);
78:         }
79:
80:         @Test
81:         public void testApplicableCorrectClassWithSubclasses() {
82:                 viewModelElementSelector.setClassType(VViewPackage.eINSTANCE.getElement());
83:                 viewModelElementSelector.setSelectSubclasses(true);
84:                 viewModelElementSelector.setAttribute(VLabelPackage.Literals.LABEL__STYLE);
85:                 viewModelElementSelector.setAttributeValue(VLabelStyle.H0);
86:                 final VLabel label = mock(VLabel.class);
87:                 when(label.eClass()).thenReturn(VLabelPackage.Literals.LABEL);
88:                 when(label.eGet(VLabelPackage.Literals.LABEL__STYLE)).thenReturn(VLabelStyle.H0);
89:                 final double specificity = viewModelElementSelector.isApplicable(
90:                         label, mock(ViewModelContext.class));
91:                 assertEquals(6, specificity, 0d);
92:         }
93:
94:         @Test
95:         public void testApplicableCorrectClassWithSubclassesWrongAttributeValue() {
96:                 viewModelElementSelector.setClassType(VViewPackage.eINSTANCE.getElement());
97:                 viewModelElementSelector.setSelectSubclasses(true);
98:                 viewModelElementSelector.setAttribute(VLabelPackage.Literals.LABEL__STYLE);
99:                 viewModelElementSelector.setAttributeValue(VLabelStyle.H1);
100:                 final VLabel label = mock(VLabel.class);
101:                 when(label.eClass()).thenReturn(VLabelPackage.Literals.LABEL);
102:                 when(label.eGet(VLabelPackage.Literals.LABEL__STYLE)).thenReturn(VLabelStyle.H0);
103:                 final double specificity = viewModelElementSelector.isApplicable(
104:                         label, mock(ViewModelContext.class));
105:                 assertEquals(VTStyleSelector.NOT_APPLICABLE, specificity, 0d);
106:         }
107:
108:         @Test
109:         public void testApplicableCorrectClassWithSubclassesWrongAttribute() {
110:                 viewModelElementSelector.setClassType(VViewPackage.eINSTANCE.getElement());
111:                 viewModelElementSelector.setSelectSubclasses(true);
112:                 viewModelElementSelector.setAttribute(VViewPackage.eINSTANCE.getElement_Name());
113:                 viewModelElementSelector.setAttributeValue(VLabelStyle.H1);
114:                 final VLabel label = mock(VLabel.class);
115:                 when(label.eClass()).thenReturn(VLabelPackage.Literals.LABEL);
116:                 when(label.eGet(VLabelPackage.Literals.LABEL__STYLE)).thenReturn(VLabelStyle.H0);
117:                 final double specificity = viewModelElementSelector.isApplicable(
118:                         label, mock(ViewModelContext.class));
119:                 assertEquals(VTStyleSelector.NOT_APPLICABLE, specificity, 0d);
120:         }
121:
122:         @Test
123:         public void testApplicableCorrectClassWithSubclassesNoAttribute() {
124:                 viewModelElementSelector.setClassType(VViewPackage.eINSTANCE.getElement());
125:                 viewModelElementSelector.setSelectSubclasses(true);
126:                 final VLabel label = mock(VLabel.class);
127:                 when(label.eClass()).thenReturn(VLabelPackage.Literals.LABEL);
128:                 when(label.eGet(VLabelPackage.Literals.LABEL__STYLE)).thenReturn(VLabelStyle.H0);
129:                 final double specificity = viewModelElementSelector.isApplicable(
130:                         label, mock(ViewModelContext.class));
131:                 assertEquals(5, specificity, 0d);
132:         }
133: }