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