Skip to content

Package: BlankTemplateProvider_Test

BlankTemplateProvider_Test

nameinstructionbranchcomplexitylinemethod
BlankTemplateProvider_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%
hasTemplateWithName(Collection, String)
M: 2 C: 18
90%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 1 C: 3
75%
M: 0 C: 1
100%
setUp()
M: 0 C: 57
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testCanProvide_ConcreteClass()
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
testCanProvide_ConcreteSubClass()
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
testCanProvide_NoConcreteSubClass()
M: 0 C: 10
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 3
100%
M: 0 C: 1
100%
testProvide_ConcreteSubClasses()
M: 0 C: 30
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
testProvide_NoSubClasses()
M: 0 C: 30
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 7
100%
M: 0 C: 1
100%
testProvide_NonConcreteSubClass()
M: 0 C: 15
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
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: * Lucas Koehler - initial API and implementation
13: * Christian W. Damus - bug 529138
14: ******************************************************************************/
15: package org.eclipse.emfforms.internal.core.services.datatemplate;
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 java.util.Collection;
25: import java.util.Hashtable;
26: import java.util.Set;
27:
28: import org.eclipse.emfforms.core.services.datatemplate.test.model.audit.AuditFactory;
29: import org.eclipse.emfforms.core.services.datatemplate.test.model.audit.AuditPackage;
30: import org.eclipse.emfforms.core.services.datatemplate.test.model.audit.User;
31: import org.eclipse.emfforms.core.services.datatemplate.test.model.audit.UserGroup;
32: import org.eclipse.emfforms.datatemplate.Template;
33: import org.eclipse.emfforms.spi.common.BundleResolver;
34: import org.eclipse.emfforms.spi.localization.EMFFormsLocalizationService;
35: import org.junit.Before;
36: import org.junit.Test;
37: import org.mockito.invocation.InvocationOnMock;
38: import org.mockito.stubbing.Answer;
39: import org.osgi.framework.Bundle;
40: import org.osgi.service.component.ComponentContext;
41:
42: /**
43: * Unit tests for {@link BlankTemplateProvider}.
44: *
45: * @author Lucas Koehler
46: *
47: */
48: public class BlankTemplateProvider_Test {
49:
50:         private BlankTemplateProvider provider;
51:
52:         /**
53:          * Set up the test cases.
54:          */
55:         @Before
56:         public void setUp() {
57:                 provider = new BlankTemplateProvider();
58:                 final EMFFormsLocalizationService localizationService = mock(EMFFormsLocalizationService.class);
59:                 when(localizationService.getString(BlankTemplateProvider.class,
60:                         MessageKeys.BlankTemplateProvider_blankTemplateLabel)).thenReturn("Blank {0}"); //$NON-NLS-1$
61:                 when(localizationService.getString(any(Bundle.class), any(String.class))).thenAnswer(new Answer<String>() {
62:
63:                         @Override
64:                         public String answer(InvocationOnMock invocation) throws Throwable {
65:                                 final String classKey = (String) invocation.getArguments()[1];
66:                                 return classKey.substring(4, classKey.length() - 5);
67:                         }
68:                 });
69:
70:                 final BundleResolver bundleResolver = mock(BundleResolver.class);
71:                 provider.setBundleResolver(bundleResolver);
72:                 provider.setLocalizationService(localizationService);
73:                 final ComponentContext context = mock(ComponentContext.class);
74:                 when(context.getProperties()).thenReturn(new Hashtable<String, Object>());
75:         }
76:
77:         @Test
78:         public void testCanProvide_ConcreteClass() {
79:                 final UserGroup group = AuditFactory.eINSTANCE.createUserGroup();
80:                 assertTrue(provider.canProvideTemplates(group, AuditPackage.Literals.USER_GROUP__ADMINS));
81:         }
82:
83:         @Test
84:         public void testCanProvide_ConcreteSubClass() {
85:                 final UserGroup group = AuditFactory.eINSTANCE.createUserGroup();
86:                 assertTrue(provider.canProvideTemplates(group, AuditPackage.Literals.USER_GROUP__USERS));
87:         }
88:
89:         @Test
90:         public void testCanProvide_NoConcreteSubClass() {
91:                 final User user = AuditFactory.eINSTANCE.createGuestUser();
92:                 assertFalse(provider.canProvideTemplates(user, AuditPackage.Literals.USER__SUB_USERS));
93:         }
94:
95:         @Test
96:         public void testProvide_NoSubClasses() {
97:                 final UserGroup group = AuditFactory.eINSTANCE.createUserGroup();
98:                 final Set<Template> result = provider.provideTemplates(group, AuditPackage.Literals.USER_GROUP__ADMINS);
99:                 assertEquals(1, result.size());
100:                 final Template template = result.iterator().next();
101:                 assertEquals(AuditPackage.eINSTANCE.getAdminUser(), template.getInstance().eClass());
102:                 assertEquals("Blank AdminUser", template.getName()); //$NON-NLS-1$
103:         }
104:
105:         @Test
106:         public void testProvide_ConcreteSubClasses() {
107:                 final UserGroup group = AuditFactory.eINSTANCE.createUserGroup();
108:                 final Set<Template> result = provider.provideTemplates(group, AuditPackage.Literals.USER_GROUP__USERS);
109:                 assertEquals(3, result.size());
110:                 assertTrue(hasTemplateWithName(result, "Blank AdminUser")); //$NON-NLS-1$
111:                 assertTrue(hasTemplateWithName(result, "Blank GuestUser")); //$NON-NLS-1$
112:                 assertTrue(hasTemplateWithName(result, "Blank RegisteredUser")); //$NON-NLS-1$
113:
114:         }
115:
116:         private boolean hasTemplateWithName(Collection<Template> templates, String name) {
117:•                for (final Template template : templates) {
118:•                        if (template.getName().equals(name)) {
119:                                 return true;
120:                         }
121:                 }
122:                 return false;
123:         }
124:
125:         @Test
126:         public void testProvide_NonConcreteSubClass() {
127:                 final User user = AuditFactory.eINSTANCE.createGuestUser();
128:                 final Set<Template> result = provider.provideTemplates(user, AuditPackage.Literals.USER__SUB_USERS);
129:                 assertEquals(0, result.size());
130:         }
131: }