Skip to content

Package: SimpleControlSWTRenderer_PTest$TestSimpleControlSWTRenderer

SimpleControlSWTRenderer_PTest$TestSimpleControlSWTRenderer

nameinstructionbranchcomplexitylinemethod
SimpleControlSWTRenderer_PTest.TestSimpleControlSWTRenderer(SimpleControlSWTRenderer_PTest, VControl, ViewModelContext, ReportService, EMFFormsDatabinding, EMFFormsLabelProvider, VTViewTemplateProvider)
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
createControl(Composite)
M: 0 C: 6
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
getUnsetText()
M: 0 C: 2
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
isUnsettable()
M: 3 C: 7
70%
M: 1 C: 1
50%
M: 1 C: 1
50%
M: 1 C: 2
67%
M: 0 C: 1
100%
setUnsettable(boolean)
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%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2017 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: * Johannes Faltermeier - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.view.internal.core.swt.renderer;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertFalse;
18: import static org.junit.Assert.assertNull;
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 java.util.Collections;
25: import java.util.Set;
26:
27: import org.eclipse.emf.ecore.EObject;
28: import org.eclipse.emf.ecore.EStructuralFeature;
29: import org.eclipse.emf.ecore.EcoreFactory;
30: import org.eclipse.emf.ecore.EcorePackage;
31: import org.eclipse.emf.ecp.test.common.DefaultRealm;
32: import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
33: import org.eclipse.emf.ecp.view.spi.core.swt.SimpleControlSWTRenderer;
34: import org.eclipse.emf.ecp.view.spi.model.LabelAlignment;
35: import org.eclipse.emf.ecp.view.spi.model.VControl;
36: import org.eclipse.emf.ecp.view.spi.model.VDomainModelReference;
37: import org.eclipse.emf.ecp.view.spi.renderer.NoPropertyDescriptorFoundExeption;
38: import org.eclipse.emf.ecp.view.spi.renderer.NoRendererFoundException;
39: import org.eclipse.emf.ecp.view.template.model.VTStyleProperty;
40: import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
41: import org.eclipse.emf.ecp.view.template.style.labelwidth.model.VTLabelWidthStyleProperty;
42: import org.eclipse.emf.ecp.view.template.style.labelwidth.model.VTLabelwidthFactory;
43: import org.eclipse.emf.ecp.view.test.common.swt.spi.SWTTestUtil;
44: import org.eclipse.emfforms.spi.common.report.ReportService;
45: import org.eclipse.emfforms.spi.core.services.databinding.DatabindingFailedException;
46: import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
47: import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
48: import org.eclipse.emfforms.spi.swt.core.layout.SWTGridCell;
49: import org.eclipse.emfforms.swt.common.test.AbstractControl_PTest;
50: import org.eclipse.swt.SWT;
51: import org.eclipse.swt.layout.GridData;
52: import org.eclipse.swt.widgets.Button;
53: import org.eclipse.swt.widgets.Composite;
54: import org.eclipse.swt.widgets.Control;
55: import org.eclipse.swt.widgets.Label;
56: import org.junit.After;
57: import org.junit.Before;
58: import org.junit.Test;
59: import org.mockito.Mockito;
60:
61: public class SimpleControlSWTRenderer_PTest extends AbstractControl_PTest<VControl> {
62:
63:         private DefaultRealm realm;
64:
65:         @Override
66:         protected void mockControl() throws DatabindingFailedException {
67:                 final EStructuralFeature eObject = EcoreFactory.eINSTANCE.createEAttribute();
68:                 final EStructuralFeature eStructuralFeature = EcorePackage.eINSTANCE.getENamedElement_Name();
69:                 super.mockControl(eObject, eStructuralFeature);
70:         }
71:
72:         @Before
73:         public void before() throws DatabindingFailedException {
74:                 realm = new DefaultRealm();
75:
76:                 final ReportService reportService = mock(ReportService.class);
77:                 setDatabindingService(mock(EMFFormsDatabinding.class));
78:                 setLabelProvider(mock(EMFFormsLabelProvider.class));
79:                 setTemplateProvider(mock(VTViewTemplateProvider.class));
80:
81:                 setup();
82:
83:                 setRenderer(new TestSimpleControlSWTRenderer(
84:                         getvControl(),
85:                         getContext(),
86:                         reportService,
87:                         getDatabindingService(),
88:                         getLabelProvider(),
89:                         getTemplateProvider()));
90:
91:                 getRenderer().init();
92:         }
93:
94:         @After
95:         public void testTearDown() {
96:                 realm.dispose();
97:                 dispose();
98:         }
99:
100:         @Test
101:         public void labelGridCellDefault() {
102:                 /* setup */
103:                 Mockito.when(getvControl().getLabelAlignment()).thenReturn(LabelAlignment.DEFAULT);
104:
105:                 /* act */
106:                 final SWTGridCell labelCell = getRenderer().getGridDescription(null).getGrid().get(0);
107:
108:                 /* assert */
109:                 assertNull(labelCell.getPreferredSize());
110:         }
111:
112:         @Test
113:         public void labelGridCellTemplateWithWidth() {
114:                 /* setup */
115:                 Mockito.when(getvControl().getLabelAlignment()).thenReturn(LabelAlignment.DEFAULT);
116:
117:                 final VTLabelWidthStyleProperty property = VTLabelwidthFactory.eINSTANCE.createLabelWidthStyleProperty();
118:                 property.setWidth(11);
119:                 final Set<VTStyleProperty> properties = Collections.<VTStyleProperty> singleton(property);
120:                 Mockito.when(getTemplateProvider().getStyleProperties(getvControl(), getContext())).thenReturn(properties);
121:
122:                 /* act */
123:                 final SWTGridCell labelCell = getRenderer().getGridDescription(null).getGrid().get(0);
124:
125:                 /* assert */
126:                 assertEquals(11, labelCell.getPreferredSize().x);
127:                 assertEquals(SWT.DEFAULT, labelCell.getPreferredSize().y);
128:         }
129:
130:         @Test
131:         public void labelGridCellTemplateWithoutWidth() {
132:                 /* setup */
133:                 Mockito.when(getvControl().getLabelAlignment()).thenReturn(LabelAlignment.DEFAULT);
134:
135:                 final VTLabelWidthStyleProperty property = VTLabelwidthFactory.eINSTANCE.createLabelWidthStyleProperty();
136:                 property.setWidth(11);
137:                 property.unsetWidth();
138:                 final Set<VTStyleProperty> properties = Collections.<VTStyleProperty> singleton(property);
139:                 Mockito.when(getTemplateProvider().getStyleProperties(getvControl(), getContext())).thenReturn(properties);
140:
141:                 /* act */
142:                 final SWTGridCell labelCell = getRenderer().getGridDescription(null).getGrid().get(0);
143:
144:                 /* assert */
145:                 assertNull(labelCell.getPreferredSize());
146:         }
147:
148:         @Test
149:         public void unsettable_readOnly()
150:                 throws NoRendererFoundException, NoPropertyDescriptorFoundExeption, DatabindingFailedException {
151:                 TestSimpleControlSWTRenderer.class.cast(getRenderer()).setUnsettable(true);
152:                 final TestObservableValue mockedObservableValue = mock(TestObservableValue.class);
153:                 when(mockedObservableValue.getRealm()).thenReturn(realm);
154:                 final EObject mockedEObject = mock(EObject.class);
155:                 when(mockedObservableValue.getObserved()).thenReturn(mockedEObject);
156:                 when(getDatabindingService().getObservableValue(any(VDomainModelReference.class), any(EObject.class)))
157:                         .thenReturn(
158:                                 mockedObservableValue);
159:
160:                 Mockito.when(getvControl().isEffectivelyReadonly()).thenReturn(true);
161:
162:                 final Control renderControl = renderControl(new SWTGridCell(0, 2, getRenderer()));
163:                 getRenderer().finalizeRendering(getShell());
164:
165:                 final Button unset = SWTTestUtil.findControl(renderControl, 0, Button.class);
166:                 assertFalse(unset.isVisible());
167:                 assertTrue(GridData.class.cast(unset.getLayoutData()).exclude);
168:         }
169:
170:         private class TestSimpleControlSWTRenderer extends SimpleControlSWTRenderer {
171:                 private Boolean unsettable;
172:
173:                 TestSimpleControlSWTRenderer(
174:                         VControl vElement,
175:                         ViewModelContext viewContext,
176:                         ReportService reportService,
177:                         EMFFormsDatabinding emfFormsDatabinding,
178:                         EMFFormsLabelProvider emfFormsLabelProvider,
179:                         VTViewTemplateProvider vtViewTemplateProvider) {
180:                         super(
181:                                 vElement,
182:                                 viewContext,
183:                                 reportService,
184:                                 emfFormsDatabinding,
185:                                 emfFormsLabelProvider,
186:                                 vtViewTemplateProvider);
187:                 }
188:
189:                 @Override
190:                 protected String getUnsetText() {
191:                         return "I am unset text"; //$NON-NLS-1$
192:                 }
193:
194:                 @Override
195:                 protected Control createControl(Composite parent) throws DatabindingFailedException {
196:                         return new Label(parent, SWT.NONE);
197:                 }
198:
199:                 @Override
200:                 protected boolean isUnsettable() throws DatabindingFailedException {
201:•                        if (unsettable == null) {
202:                                 return super.isUnsettable();
203:                         }
204:                         return unsettable;
205:                 }
206:
207:                 void setUnsettable(boolean unsettable) {
208:                         this.unsettable = unsettable;
209:                 }
210:         }
211:
212: }