Skip to content

Package: StringCellEditor_PTest

StringCellEditor_PTest

nameinstructionbranchcomplexitylinemethod
StringCellEditor_PTest(EStructuralFeature, EObject, Object, Object, boolean)
M: 0 C: 23
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
destroy()
M: 0 C: 13
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 5
100%
M: 0 C: 1
100%
parameters()
M: 0 C: 231
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 15
100%
M: 0 C: 1
100%
setValue()
M: 0 C: 43
100%
M: 0 C: 4
100%
M: 0 C: 3
100%
M: 0 C: 8
100%
M: 0 C: 1
100%
setup()
M: 0 C: 63
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 9
100%
M: 0 C: 1
100%
testProcessorCalled()
M: 0 C: 40
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
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: * Eugen Neufeld - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.edit.spi.swt.table;
15:
16: import static org.junit.Assert.assertEquals;
17: import static org.junit.Assert.assertNull;
18: import static org.mockito.Mockito.mock;
19: import static org.mockito.Mockito.when;
20:
21: import org.eclipse.core.databinding.observable.value.IObservableValue;
22: import org.eclipse.emf.databinding.EMFDataBindingContext;
23: import org.eclipse.emf.databinding.EMFProperties;
24: import org.eclipse.emf.ecore.EObject;
25: import org.eclipse.emf.ecore.EStructuralFeature;
26: import org.eclipse.emf.ecp.edit.internal.model.testData.TestDataFactory;
27: import org.eclipse.emf.ecp.edit.internal.model.testData.TestDataPackage;
28: import org.eclipse.emf.ecp.test.common.DefaultRealm;
29: import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
30: import org.eclipse.emfforms.spi.swt.core.EMFFormsControlProcessorService;
31: import org.eclipse.swt.widgets.Shell;
32: import org.eclipse.swt.widgets.Text;
33: import org.junit.After;
34: import org.junit.Before;
35: import org.junit.Test;
36: import org.junit.runner.RunWith;
37: import org.junit.runners.Parameterized;
38: import org.junit.runners.Parameterized.Parameters;
39: import org.mockito.Mockito;
40:
41: @SuppressWarnings({ "unchecked", "rawtypes" })
42: @RunWith(Parameterized.class)
43: public class StringCellEditor_PTest {
44:
45:         @Parameters(name = "Feature:{0} Expected Value:{2} isValid:{3}")
46:         public static Object[] parameters() {
47:                 return new Object[][] {
48:                         { TestDataPackage.eINSTANCE.getTestData_String(), TestDataFactory.eINSTANCE.createTestData(), "foo", "foo", //$NON-NLS-1$ //$NON-NLS-2$
49:                                 true
50:                         },
51:                         { TestDataPackage.eINSTANCE.getTestData_String(), TestDataFactory.eINSTANCE.createTestData(), "", null, true //$NON-NLS-1$
52:                         },
53:                         { TestDataPackage.eINSTANCE.getTestData_Boolean(), TestDataFactory.eINSTANCE.createTestData(),
54:                                 Boolean.TRUE, Boolean.TRUE,
55:                                 true },
56:                         { TestDataPackage.eINSTANCE.getTestData_Integer(), TestDataFactory.eINSTANCE.createTestData(), 2, 2, true },
57:                         { TestDataPackage.eINSTANCE.getTestData_Long(), TestDataFactory.eINSTANCE.createTestData(), 2L, 2L, true },
58:                         { TestDataPackage.eINSTANCE.getTestData_Double(), TestDataFactory.eINSTANCE.createTestData(), 85.5d, 85.5d,
59:                                 true
60:                         },
61:                         { TestDataPackage.eINSTANCE.getTestData_Float(), TestDataFactory.eINSTANCE.createTestData(), 85.5f, 85.5f,
62:                                 true
63:                         },
64:                         { TestDataPackage.eINSTANCE.getTestData_StringMax8(), TestDataFactory.eINSTANCE.createTestData(),
65:                                 "extra long invalid string", "extra long invalid string", false }, //$NON-NLS-1$ //$NON-NLS-2$
66:                 };
67:         }
68:
69:         private IObservableValue target;
70:         private IObservableValue model;
71:         private EMFDataBindingContext dbc;
72:         private StringCellEditor editor;
73:         private final EStructuralFeature feature;
74:         private final Object newValue;
75:         private final EObject eObject;
76:         private final boolean valid;
77:         private final Object expectedValue;
78:
79:         private final ViewModelContext context = Mockito.mock(ViewModelContext.class);
80:
81:         public StringCellEditor_PTest(EStructuralFeature feature, EObject eObject, Object newValue, Object expectedValue,
82:                 boolean valid) {
83:                 this.feature = feature;
84:                 this.eObject = eObject;
85:                 this.newValue = newValue;
86:                 this.expectedValue = expectedValue;
87:                 this.valid = valid;
88:
89:         }
90:
91:         @Before
92:         public void setup() {
93:                 final DefaultRealm realm = new DefaultRealm();
94:                 dbc = new EMFDataBindingContext(realm);
95:                 model = EMFProperties.value(feature).observe(realm, eObject);
96:                 final Shell shell = new Shell();
97:                 editor = new StringCellEditor(shell);
98:                 editor.instantiate(feature, context);
99:                 target = editor.getValueProperty().observe(editor);
100:                 dbc.bindValue(target, model, editor.getTargetToModelStrategy(dbc), editor.getModelToTargetStrategy(dbc));
101:         }
102:
103:         @After
104:         public void destroy() {
105:                 dbc.dispose();
106:                 model.dispose();
107:                 target.dispose();
108:                 editor.dispose();
109:         }
110:
111:         @Test
112:         public void setValue() {
113:                 target.setValue(newValue.toString());
114:                 assertEquals(newValue.toString(), ((Text) editor.getControl()).getText());
115:•                if (valid) {
116:                         assertEquals(expectedValue, model.getValue());
117:•                        assertEquals(target.getValue(), expectedValue == null ? "" : model.getValue().toString()); //$NON-NLS-1$
118:                 } else {
119:                         assertNull(model.getValue());
120:                 }
121:         }
122:
123:         @Test
124:         public void testProcessorCalled() {
125:                 final EMFFormsControlProcessorService dummyProcessor = mock(EMFFormsControlProcessorService.class);
126:                 when(context.getService(EMFFormsControlProcessorService.class)).thenReturn(dummyProcessor);
127:                 when(context.hasService(EMFFormsControlProcessorService.class)).thenReturn(Boolean.TRUE);
128:                 editor.instantiate(feature, context);
129:                 Mockito.verify(dummyProcessor).process(editor.getControl(), null, context);
130:         }
131: }