Skip to content

Package: RAPFactories_PTest

RAPFactories_PTest

nameinstructionbranchcomplexitylinemethod
RAPFactories_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%
testDifferentSessionIdsECPObserverBus()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testDifferentSessionIdsECPProjectManager()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 12
100%
M: 0 C: 1
100%
testDifferentSessionIdsECPProviderRegistry()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testDifferentSessionIdsECPRepositoryManager()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testRetrieveMock()
M: 0 C: 21
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 6
100%
M: 0 C: 1
100%
testSameSessionIdsECPObserverBus()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testSameSessionIdsECPProjectManager()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testSameSessionIdsECPProviderRegistry()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testSameSessionIdsECPRepositoryManager()
M: 0 C: 35
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 11
100%
M: 0 C: 1
100%
testServices()
M: 0 C: 78
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 21
100%
M: 0 C: 1
100%

Coverage

1: /*******************************************************************************
2: * Copyright (c) 2011-2013 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: * Neil Mackenzie - initial implementation
13: ******************************************************************************/
14: package org.eclipse.emf.ecp.core.rap.test;
15:
16: import java.util.Collection;
17:
18: import junit.framework.TestCase;
19:
20: import org.eclipse.emf.ecp.core.ECPProject;
21: import org.eclipse.emf.ecp.core.ECPProjectManager;
22: import org.eclipse.emf.ecp.core.ECPProviderRegistry;
23: import org.eclipse.emf.ecp.core.ECPRepositoryManager;
24: import org.eclipse.emf.ecp.core.exceptions.ECPProjectWithNameExistsException;
25: import org.eclipse.emf.ecp.core.rap.SessionProvider;
26: import org.eclipse.emf.ecp.core.rap.sessionprovider.test.MockSessionProvider;
27: import org.eclipse.emf.ecp.core.rap.sessionprovider.test.MockSessionProvider.SessionProviderType;
28: import org.eclipse.emf.ecp.core.util.observer.ECPObserverBus;
29: import org.eclipse.emf.ecp.emfstore.core.internal.EMFStoreProvider;
30: import org.junit.Test;
31: import org.osgi.framework.BundleContext;
32: import org.osgi.framework.FrameworkUtil;
33: import org.osgi.framework.ServiceReference;
34:
35: /**
36: *
37: * @author neilmack
38: * Tests the service factory classes from the
39: * org.eclipse.emf.ecp.core.rap package.
40: */
41: @SuppressWarnings("restriction")
42: public class RAPFactories_PTest extends TestCase {
43:         /**
44:          * Test retrieval of the mock SessionProvider service.
45:          */
46:         @Test
47:         public void testRetrieveMock() {
48:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
49:                 final ServiceReference<SessionProvider> ref = bundleContext.getServiceReference(SessionProvider.class);
50:                 final SessionProvider provider = bundleContext.getService(ref);
51:                 assertNotNull(provider);
52:                 bundleContext.ungetService(ref);
53:         }
54:
55:         /**
56:          * test that the ECPProjectManagerFacotry returns a
57:          * working ECPProjectManager.
58:          *
59:          * @throws ECPProjectWithNameExistsException in case of exception
60:          */
61:         @Test
62:         public final void testServices() throws ECPProjectWithNameExistsException {
63:                 MockSessionProvider.getInstance();
64:                 MockSessionProvider.setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
65:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
66:                 final ServiceReference<ECPProjectManager> serviceReference = bundleContext
67:                         .getServiceReference(ECPProjectManager.class);
68:
69:                 final ECPProjectManager service1 = bundleContext.getService(serviceReference);
70:                 final ECPProject project1 = service1.createProject(new EMFStoreProvider(), "Test10"); //$NON-NLS-1$
71:                 final ECPProject project2 = service1.createProject(EMFStoreProvider.INSTANCE, "Test2"); //$NON-NLS-1$
72:
73:                 bundleContext.ungetService(serviceReference);
74:                 final ECPProjectManager service2 = bundleContext.getService(serviceReference);
75:                 assertNotSame(service1, service2);
76:
77:                 final ECPProject project3 = service2.createProject(EMFStoreProvider.INSTANCE, "Test3"); //$NON-NLS-1$
78:
79:                 final Collection<ECPProject> projects1 = service1.getProjects();
80:                 assertEquals(2, projects1.size());
81:                 assertTrue(projects1.contains(project1));
82:                 assertTrue(projects1.contains(project2));
83:
84:                 final Collection<ECPProject> projects2 = service2.getProjects();
85:                 assertEquals(1, projects2.size());
86:                 assertTrue(projects2.contains(project3));
87:                 bundleContext.ungetService(serviceReference);
88:         }
89:
90:         /**
91:          * Test that when the ECPProjectManagerFactory is asked for
92:          * a ECPProjectManager from 2 different sessions, that 2 different
93:          * ECPProjectManagers are returned.
94:          */
95:         @Test
96:         public void testDifferentSessionIdsECPProjectManager() {
97:                 MockSessionProvider.getInstance();
98:                 MockSessionProvider.setSessionProvider(
99:                         SessionProviderType.DIFFERENT_SESSION_ID);
100:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
101:                 final ServiceReference<ECPProjectManager> serviceReference = bundleContext
102:                         .getServiceReference(ECPProjectManager.class);
103:
104:                 final ECPProjectManager service1 = bundleContext.getService(serviceReference);
105:                 bundleContext.ungetService(serviceReference);
106:
107:                 final ECPProjectManager service2 = bundleContext.getService(serviceReference);
108:                 assertNotSame(service1, service2);
109:                 bundleContext.ungetService(serviceReference);
110:         }
111:
112:         /**
113:          * Test that when the ECPProjectManageractory is asked for
114:          * a ECPProjectManager 2 times from the same session,
115:          * that the same ECPProjectManager is returned.
116:          */
117:         @Test
118:         public void testSameSessionIdsECPProjectManager() {
119:                 MockSessionProvider.getInstance();
120:                 MockSessionProvider.setSessionProvider(SessionProviderType.SAME_SESSION_ID);
121:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
122:                 final ServiceReference<ECPProjectManager> serviceReference = bundleContext
123:                         .getServiceReference(ECPProjectManager.class);
124:
125:                 final ECPProjectManager service1 = bundleContext.getService(serviceReference);
126:                 bundleContext.ungetService(serviceReference);
127:
128:                 final ECPProjectManager service2 = bundleContext.getService(serviceReference);
129:                 assertSame(service1, service2);
130:                 bundleContext.ungetService(serviceReference);
131:         }
132:
133:         /**
134:          * Test that when the ECPObserverBusFactory is asked for
135:          * a ECPObserverBus from 2 different sessions, that 2 different
136:          * ECPObserverBus's are returned.
137:          */
138:         @Test
139:         public final void testDifferentSessionIdsECPObserverBus() {
140:                 MockSessionProvider.getInstance();
141:                 MockSessionProvider.setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
142:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
143:                 final ServiceReference<ECPObserverBus> serviceReference = bundleContext
144:                         .getServiceReference(ECPObserverBus.class);
145:
146:                 final ECPObserverBus service1 = bundleContext.getService(serviceReference);
147:                 bundleContext.ungetService(serviceReference);
148:
149:                 final ECPObserverBus service2 = bundleContext.getService(serviceReference);
150:                 assertNotSame(service1, service2);
151:                 bundleContext.ungetService(serviceReference);
152:         }
153:
154:         /**
155:          * Test that when the ECPObserverBusFactory is asked for
156:          * a ECPObserverBus 2 times from the same session,
157:          * that the same ECPObserverBus is returned.
158:          */
159:         @Test
160:         public final void testSameSessionIdsECPObserverBus() {
161:                 MockSessionProvider.getInstance();
162:                 MockSessionProvider.setSessionProvider(SessionProviderType.SAME_SESSION_ID);
163:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
164:                 final ServiceReference<ECPObserverBus> serviceReference = bundleContext
165:                         .getServiceReference(ECPObserverBus.class);
166:
167:                 final ECPObserverBus service1 = bundleContext.getService(serviceReference);
168:                 bundleContext.ungetService(serviceReference);
169:
170:                 final ECPObserverBus service2 = bundleContext.getService(serviceReference);
171:                 assertSame(service1, service2);
172:                 bundleContext.ungetService(serviceReference);
173:         }
174:
175:         /**
176:          * Test that when the ECPProviderRegistryFactory is asked for
177:          * a ECPProviderRegistry from 2 different sessions, that 2 different
178:          * ECPProviderRegistry's are returned.
179:          */
180:         @Test
181:         public final void testDifferentSessionIdsECPProviderRegistry() {
182:                 MockSessionProvider.getInstance();
183:                 MockSessionProvider.setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
184:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
185:                 final ServiceReference<ECPProviderRegistry> serviceReference = bundleContext
186:                         .getServiceReference(ECPProviderRegistry.class);
187:
188:                 final ECPProviderRegistry service1 = bundleContext.getService(serviceReference);
189:                 bundleContext.ungetService(serviceReference);
190:
191:                 final ECPProviderRegistry service2 = bundleContext.getService(serviceReference);
192:                 assertNotSame(service1, service2);
193:                 bundleContext.ungetService(serviceReference);
194:         }
195:
196:         /**
197:          * Test that when the ECPProviderRegistryFactory is asked for
198:          * a ECPProviderRegistry 2 times from the same session,
199:          * that the same ECPProviderRegistry is returned.
200:          */
201:         @Test
202:         public final void testSameSessionIdsECPProviderRegistry() {
203:                 MockSessionProvider.getInstance();
204:                 MockSessionProvider.setSessionProvider(SessionProviderType.SAME_SESSION_ID);
205:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
206:                 final ServiceReference<ECPProviderRegistry> serviceReference = bundleContext
207:                         .getServiceReference(ECPProviderRegistry.class);
208:
209:                 final ECPProviderRegistry service1 = bundleContext.getService(serviceReference);
210:                 bundleContext.ungetService(serviceReference);
211:
212:                 final ECPProviderRegistry service2 = bundleContext.getService(serviceReference);
213:                 assertSame(service1, service2);
214:                 bundleContext.ungetService(serviceReference);
215:         }
216:
217:         /**
218:          * Test that when the ECPRepositoryManagerFactory is asked for
219:          * a ECPRepositoryManager from 2 different sessions, that 2 different
220:          * ECPRepositoryManagers are returned.
221:          */
222:         @Test
223:         public final void testDifferentSessionIdsECPRepositoryManager() {
224:                 MockSessionProvider.getInstance();
225:                 MockSessionProvider.setSessionProvider(SessionProviderType.DIFFERENT_SESSION_ID);
226:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
227:                 final ServiceReference<ECPRepositoryManager> serviceReference = bundleContext
228:                         .getServiceReference(ECPRepositoryManager.class);
229:
230:                 final ECPRepositoryManager service1 = bundleContext.getService(serviceReference);
231:                 bundleContext.ungetService(serviceReference);
232:
233:                 final ECPRepositoryManager service2 = bundleContext.getService(serviceReference);
234:                 assertNotSame(service1, service2);
235:                 bundleContext.ungetService(serviceReference);
236:         }
237:
238:         /**
239:          * Test that when the ECPRepositoryManagerFactory is asked for
240:          * a ECPRepositoryManager 2 times from the same session,
241:          * that the same ECPRepositoryManager is returned.
242:          */
243:         @Test
244:         public final void testSameSessionIdsECPRepositoryManager() {
245:                 MockSessionProvider.getInstance();
246:                 MockSessionProvider.setSessionProvider(SessionProviderType.SAME_SESSION_ID);
247:                 final BundleContext bundleContext = FrameworkUtil.getBundle(getClass()).getBundleContext();
248:                 final ServiceReference<ECPRepositoryManager> serviceReference = bundleContext
249:                         .getServiceReference(ECPRepositoryManager.class);
250:
251:                 final ECPRepositoryManager service1 = bundleContext.getService(serviceReference);
252:                 bundleContext.ungetService(serviceReference);
253:
254:                 final ECPRepositoryManager service2 = bundleContext.getService(serviceReference);
255:                 assertSame(service1, service2);
256:                 bundleContext.ungetService(serviceReference);
257:         }
258:
259: }