Skip to content

Package: EMFFormsDIRendererFactory_PTest

EMFFormsDIRendererFactory_PTest

nameinstructionbranchcomplexitylinemethod
EMFFormsDIRendererFactory_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%
setUp()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
tearDown()
M: 0 C: 13
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
testGetRendererInstance()
M: 0 C: 72
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 19
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: * Lucas Koehler - initial API and implementation
13: ******************************************************************************/
14: package org.eclipse.emfforms.spi.swt.core.di;
15:
16: import static org.junit.Assert.assertTrue;
17: import static org.mockito.Mockito.mock;
18: import static org.mockito.Mockito.when;
19:
20: import org.eclipse.e4.core.contexts.EclipseContextFactory;
21: import org.eclipse.e4.core.contexts.IEclipseContext;
22: import org.eclipse.emf.ecp.test.common.DefaultRealm;
23: import org.eclipse.emf.ecp.view.spi.context.ViewModelContext;
24: import org.eclipse.emf.ecp.view.spi.model.VControl;
25: import org.eclipse.emf.ecp.view.spi.model.VElement;
26: import org.eclipse.emf.ecp.view.spi.model.VViewFactory;
27: import org.eclipse.emf.ecp.view.template.model.VTViewTemplateProvider;
28: import org.eclipse.emfforms.internal.swt.core.di.tests.TestControlSWTRendererDI;
29: import org.eclipse.emfforms.internal.swt.core.di.tests.TestControlSWTRendererServiceDI;
30: import org.eclipse.emfforms.spi.common.report.ReportService;
31: import org.eclipse.emfforms.spi.core.services.databinding.EMFFormsDatabinding;
32: import org.eclipse.emfforms.spi.core.services.label.EMFFormsLabelProvider;
33: import org.eclipse.emfforms.spi.swt.core.AbstractSWTRenderer;
34: import org.eclipse.emfforms.spi.swt.core.EMFFormsRendererService;
35: import org.junit.After;
36: import org.junit.Before;
37: import org.junit.Test;
38: import org.osgi.framework.BundleContext;
39: import org.osgi.framework.FrameworkUtil;
40: import org.osgi.framework.ServiceReference;
41: import org.osgi.framework.ServiceRegistration;
42:
43: /**
44: * JUnit plugin tests for {@link EMFFormsDIRendererFactory}.
45: *
46: * @author Lucas Koehler
47: *
48: */
49: @SuppressWarnings("rawtypes")
50: public class EMFFormsDIRendererFactory_PTest {
51:
52:         private EMFFormsDIRendererFactory diRendererFactory;
53:         private ServiceRegistration<EMFFormsDIRendererService> registerRendererService;
54:         private ServiceReference<EMFFormsRendererService> serviceReference;
55:         private BundleContext bundleContext;
56:
57:         private DefaultRealm realm;
58:
59:         /**
60:          * Creates a new {@link EMFFormsDIRendererFactory}, registers the {@link EMFFormsDIRendererService test di
61:          * renderer service} and creates a new {@link DefaultRealm} for every test case.
62:          */
63:         @Before
64:         public void setUp() {
65:                 realm = new DefaultRealm();
66:                 bundleContext = FrameworkUtil.getBundle(EMFFormsDIRendererFactory_PTest.class).getBundleContext();
67:                 registerRendererService = bundleContext.registerService(EMFFormsDIRendererService.class,
68:                         new TestControlSWTRendererServiceDI(), null);
69:                 serviceReference = bundleContext.getServiceReference(EMFFormsRendererService.class);
70:                 diRendererFactory = (EMFFormsDIRendererFactory) bundleContext.getService(serviceReference);
71:         }
72:
73:         /**
74:          * Clean up
75:          */
76:         @After
77:         public void tearDown() {
78:                 bundleContext.ungetService(serviceReference);
79:                 registerRendererService.unregister();
80:                 realm.dispose();
81:         }
82:
83:         /**
84:          * Test method for
85:          * {@link org.eclipse.emfforms.spi.swt.core.di.EMFFormsDIRendererFactory#getRendererInstance(org.eclipse.emf.ecp.view.spi.model.VElement, org.eclipse.emf.ecp.view.spi.context.ViewModelContext)}
86:          * .
87:          */
88:         @Test
89:         public void testGetRendererInstance() {
90:                 final IEclipseContext eclipseContext = EclipseContextFactory.create("TestContext"); //$NON-NLS-1$
91:                 final ReportService reportService = mock(ReportService.class);
92:                 final EMFFormsDatabinding emfFormsDatabinding = mock(EMFFormsDatabinding.class);
93:                 final EMFFormsLabelProvider emfFormsLabelProvider = mock(EMFFormsLabelProvider.class);
94:                 final VTViewTemplateProvider viewTemplateProvider = mock(VTViewTemplateProvider.class);
95:                 eclipseContext.set(ReportService.class, reportService);
96:                 eclipseContext.set(EMFFormsDatabinding.class, emfFormsDatabinding);
97:                 eclipseContext.set(EMFFormsLabelProvider.class, emfFormsLabelProvider);
98:                 eclipseContext.set(VTViewTemplateProvider.class, viewTemplateProvider);
99:
100:                 final VControl vControl = VViewFactory.eINSTANCE.createControl();
101:                 final EMFFormsContextProvider contextProvider = mock(EMFFormsContextProvider.class);
102:                 when(contextProvider.getContext()).thenReturn(eclipseContext);
103:                 final ViewModelContext viewModelContext = mock(ViewModelContext.class);
104:                 when(viewModelContext.getService(EMFFormsContextProvider.class)).thenReturn(contextProvider);
105:
106:                 final AbstractSWTRenderer<VElement> rendererInstance = diRendererFactory.getRendererInstance(vControl,
107:                         viewModelContext);
108:
109:                 assertTrue("The created renderer instance must be of type TestControlSWTRendererDI.", //$NON-NLS-1$
110:                         TestControlSWTRendererDI.class.isInstance(rendererInstance));
111:         }
112:
113: }