Skip to content

Package: BooleanControlRenderer_PTest

BooleanControlRenderer_PTest

nameinstructionbranchcomplexitylinemethod
BooleanControlRenderer_PTest()
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%
assertControl(Control)
M: 0 C: 31
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
before()
M: 0 C: 46
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
mockControl()
M: 0 C: 11
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
renderControlLabelAlignmentLeft()
M: 0 C: 41
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
renderControlLabelAlignmentNone()
M: 0 C: 41
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
setUpDatabindingTest(ObservingWritableValue)
M: 0 C: 38
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testDatabindingServiceUsageChangeControl()
M: 0 C: 24
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
testDatabindingServiceUsageChangeObservable()
M: 0 C: 28
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
testDatabindingServiceUsageInitialBinding()
M: 0 C: 22
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
testEffectivelyReadOnlyDeactivatesControl()
M: 0 C: 50
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
testLabelServiceUsage()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
testTearDown()
M: 0 C: 6
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-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: * Eugen Neufeld - initial API and implementation
13: * Lucas Koehler - databinding tests
14: ******************************************************************************/
15: package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
16:
17: import static org.junit.Assert.assertEquals;
18: import static org.junit.Assert.assertFalse;
19: import static org.junit.Assert.assertTrue;
20: import static org.mockito.Matchers.any;
21: import static org.mockito.Mockito.mock;
22: import static org.mockito.Mockito.when;
23:
24: import org.eclipse.emf.ecore.EClass;
25: import org.eclipse.emf.ecore.EObject;
26: import org.eclipse.emf.ecore.EStructuralFeature;
27: import org.eclipse.emf.ecore.EcoreFactory;
28: import org.eclipse.emf.ecore.EcorePackage;
29: import org.eclipse.emf.ecp.test.common.DefaultRealm;
30: import org.eclipse.emf.ecp.view.core.swt.tests.ObservingWritableValue;
31: import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
32: import org.eclipse.emf.ecp.view.spi.model.VControl;
33: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
34: import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
35: import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
36: import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
37: import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
38: import org.eclipse.emfforms.spi.common.report.ReportService;
39: import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
40: import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
41: import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
42: import org.eclipse.emfforms.spi.core.services.label.NoLabelFoundException;
43: import org.eclipse.emfforms.spi.swt.core.SWTDataElementIdHelper;
44: import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
45: import org.eclipse.emfforms.swt.common.test.AbstractControl_PTest;
46: import org.eclipse.swt.SWT;
47: import org.eclipse.swt.widgets.Button;
48: import org.eclipse.swt.widgets.Control;
49: import org.junit.After;
50: import org.junit.Before;
51: import org.junit.Test;
52: import org.mockito.Mockito;
53:
54: public class BooleanControlRenderer_PTest extends AbstractControl_PTest<VControl> {
55:
56:         private DefaultRealm realm;
57:
58:         @Before
59:         public void before() throws DatabindingFailedException {
60:                 realm = new DefaultRealm();
61:                 final ReportService reportService = mock(ReportService.class);
62:                 setDatabindingService(mock(EMFFormsDatabinding.class));
63:                 setLabelProvider(mock(EMFFormsLabelProvider.class));
64:                 setTemplateProvider(mock(VTViewTemplateProvider.class));
65:                 setup();
66:                 setRenderer(new BooleanControlSWTRenderer(getvControl(), getContext(), reportService, getDatabindingService(),
67:                         getLabelProvider(),
68:                         getTemplateProvider()));
69:                 getRenderer().init();
70:         }
71:
72:         @After
73:         public void testTearDown() {
74:                 realm.dispose();
75:                 dispose();
76:         }
77:
78:         @Test
79:         public void renderControlLabelAlignmentNone()
80:                 throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
81:                 setMockLabelAlignment(LabelAlignment.NONE);
82:                 final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
83:                 when(mockedObservableValue.getRealm()).thenReturn(realm);
84:                 when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
85:                         .thenReturn(
86:                                 mockedObservableValue);
87:                 final Control render = renderControl(new SWTGridCell(0, 1, getRenderer()));
88:                 assertControl(render);
89:         }
90:
91:         @Test
92:         public void renderControlLabelAlignmentLeft()
93:                 throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
94:                 setMockLabelAlignment(LabelAlignment.LEFT);
95:                 final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
96:                 when(mockedObservableValue.getRealm()).thenReturn(realm);
97:                 when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
98:                         .thenReturn(
99:                                 mockedObservableValue);
100:                 final Control render = renderControl(new SWTGridCell(0, 2, getRenderer()));
101:
102:                 assertControl(render);
103:         }
104:
105:         private void assertControl(Control render) {
106:                 assertTrue(Button.class.isInstance(render));
107:                 assertEquals(SWT.CHECK, Button.class.cast(render).getStyle()
108:                         & SWT.CHECK);
109:                 assertEquals("org_eclipse_emf_ecp_control_boolean", Button.class.cast(render).getData(CUSTOM_VARIANT)); //$NON-NLS-1$
110:                 assertEquals(UUID + "#control", Button.class.cast(render).getData(SWTDataElementIdHelper.ELEMENT_ID_KEY)); //$NON-NLS-1$
111:         }
112:
113:         @Override
114:         protected void mockControl() throws DatabindingFailedException {
115:                 final EClass eObject = EcoreFactory.eINSTANCE.createEClass();
116:                 final EStructuralFeature eStructuralFeature = EcorePackage.eINSTANCE
117:                         .getEClass_Interface();
118:                 super.mockControl(eObject, eStructuralFeature);
119:         }
120:
121:         @Test
122:         public void testDatabindingServiceUsageInitialBinding() throws NoRendererFoundException,
123:                 NoPropertyDescriptorFoundExeption, DatabindingFailedException {
124:                 final boolean initialValue = true;
125:                 final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue, Boolean.class);
126:
127:                 final Button button = setUpDatabindingTest(mockedObservable);
128:                 assertEquals(initialValue, button.getSelection());
129:
130:         }
131:
132:         @Test
133:         @SuppressWarnings("unchecked")
134:         public void testDatabindingServiceUsageChangeObservable() throws NoRendererFoundException,
135:                 NoPropertyDescriptorFoundExeption, DatabindingFailedException {
136:                 final boolean initialValue = true;
137:                 final boolean changedValue = false;
138:                 final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue, Boolean.class);
139:
140:                 final Button button = setUpDatabindingTest(mockedObservable);
141:                 mockedObservable.setValue(changedValue);
142:                 assertEquals(changedValue, button.getSelection());
143:
144:         }
145:
146:         @Test
147:         public void testDatabindingServiceUsageChangeControl() throws NoRendererFoundException,
148:                 NoPropertyDescriptorFoundExeption, DatabindingFailedException {
149:                 final boolean initialValue = true;
150:                 final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, initialValue, Boolean.class);
151:
152:                 final Button button = setUpDatabindingTest(mockedObservable);
153:                 SWTTestUtil.clickButton(button);
154:
155:                 assertEquals(button.getSelection(), mockedObservable.getValue());
156:
157:         }
158:
159:         /**
160:          * Universal set up stuff for the data binding test cases.
161:          *
162:          * @param mockedObservable
163:          * @return
164:          * @throws NoRendererFoundException
165:          * @throws NoPropertyDescriptorFoundExeption
166:          * @throws DatabindingFailedException
167:          */
168:         private Button setUpDatabindingTest(final ObservingWritableValue mockedObservable) throws NoRendererFoundException,
169:                 NoPropertyDescriptorFoundExeption, DatabindingFailedException {
170:                 Mockito.reset(getDatabindingService());
171:
172:                 mockDatabindingIsSettableAndChangeable();
173:                 when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
174:                         .thenReturn(
175:                                 mockedObservable);
176:
177:                 final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
178:                 final Button button = (Button) renderControl;
179:                 return button;
180:         }
181:
182:         /**
183:          * Tests whether the {@link EMFFormsLabelProvider} is used to get the labels of the control.
184:          *
185:          * @throws NoRendererFoundException
186:          * @throws NoPropertyDescriptorFoundExeption
187:          * @throws NoLabelFoundException
188:          */
189:         @Test
190:         public void testLabelServiceUsage() throws NoRendererFoundException, NoPropertyDescriptorFoundExeption,
191:                 NoLabelFoundException {
192:                 labelServiceUsage();
193:         }
194:
195:         @Test
196:         public void testEffectivelyReadOnlyDeactivatesControl()
197:                 throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
198:                 final ObservingWritableValue mockedObservable = new ObservingWritableValue(realm, true, Boolean.class);
199:                 when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
200:                         .thenReturn(mockedObservable);
201:                 when(getvControl().isEffectivelyReadonly()).thenReturn(true);
202:                 final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
203:                 getRenderer().finalizeRendering(getShell());
204:                 assertFalse(renderControl.isEnabled());
205:         }
206: }