1 package com.atlassian.plugins.rest.module;
2
3 import com.atlassian.plugin.osgi.factory.OsgiPlugin;
4 import com.sun.jersey.api.core.ResourceConfig;
5
6 import static org.junit.Assert.assertNotNull;
7 import static org.junit.Assert.assertNull;
8
9 import org.junit.Test;
10
11 import static org.mockito.Mockito.mock;
12 import static org.mockito.Mockito.when;
13
14 import java.util.Collections;
15 import java.util.Set;
16
17 public class OsgiComponentProviderFactoryTest {
18 private OsgiComponentProviderFactory componentProviderFactory;
19
20 private void initialiseComponentProviderFactory(Set<Class<?>> classes) {
21 final ResourceConfig resourceConfig = mock(ResourceConfig.class);
22 final OsgiPlugin plugin = mock(OsgiPlugin.class);
23
24 when(resourceConfig.getClasses()).thenReturn(classes);
25
26 componentProviderFactory = new OsgiComponentProviderFactory(resourceConfig, plugin);
27 }
28
29 @Test
30 public void testGetComponentProviderWithNoResourceOrProviderClasses() {
31 initialiseComponentProviderFactory(null);
32
33 assertNull(componentProviderFactory.getComponentProvider(this.getClass()));
34 }
35
36 @Test
37 public void testGetComponentProviderWithEmptyResourceOrProviderClasses() {
38 initialiseComponentProviderFactory(Collections.<Class<?>>emptySet());
39
40 assertNull(componentProviderFactory.getComponentProvider(this.getClass()));
41 }
42
43 @Test
44 public void testGetComponentProviderWithAResourceOrProviderClasses() {
45 initialiseComponentProviderFactory(Collections.<Class<?>>singleton(this.getClass()));
46
47 assertNotNull(componentProviderFactory.getComponentProvider(this.getClass()));
48 assertNull(componentProviderFactory.getComponentProvider(Object.class));
49 }
50 }