1 package com.atlassian.plugins.rest.module;
2
3 import com.atlassian.plugin.osgi.factory.OsgiPlugin;
4 import com.atlassian.plugins.rest.module.OsgiComponentProviderFactory;
5 import com.sun.jersey.api.core.ResourceConfig;
6 import static org.junit.Assert.assertNotNull;
7 import static org.junit.Assert.assertNull;
8 import org.junit.Test;
9 import static org.mockito.Mockito.mock;
10 import static org.mockito.Mockito.when;
11
12 import java.util.Collections;
13 import java.util.Set;
14
15 public class OsgiComponentProviderFactoryTest
16 {
17 private OsgiComponentProviderFactory componentProviderFactory;
18
19 private void initialiseComponentProviderFactory(Set<Class<?>> classes)
20 {
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 {
32 initialiseComponentProviderFactory(null);
33
34 assertNull(componentProviderFactory.getComponentProvider(this.getClass()));
35 }
36
37 @Test
38 public void testGetComponentProviderWithEmptyResourceOrProviderClasses()
39 {
40 initialiseComponentProviderFactory(Collections.<Class<?>>emptySet());
41
42 assertNull(componentProviderFactory.getComponentProvider(this.getClass()));
43 }
44
45 @Test
46 public void testGetComponentProviderWithAResourceOrProviderClasses()
47 {
48 initialiseComponentProviderFactory(Collections.<Class<?>>singleton(this.getClass()));
49
50 assertNotNull(componentProviderFactory.getComponentProvider(this.getClass()));
51 assertNull(componentProviderFactory.getComponentProvider(Object.class));
52 }
53 }