1 package com.atlassian.sal.core.component;
2
3 import com.atlassian.sal.api.component.ComponentLocator;
4 import org.junit.Test;
5
6 import java.util.Collection;
7 import java.util.HashMap;
8 import java.util.Optional;
9
10 import static org.junit.Assert.assertEquals;
11
12 public class TestComponentLocator {
13
14 @Test
15 public void testConvertClassToName() {
16 MockComponentLocator loc = new MockComponentLocator();
17 assertEquals("string", loc.convertClassToName(String.class));
18 assertEquals("hashMap", loc.convertClassToName(HashMap.class));
19 }
20
21 private static class MockComponentLocator extends ComponentLocator {
22
23 protected <T> T getComponentInternal(Class<T> iface) {
24 return null;
25 }
26
27 @Override
28 protected <T> Collection<T> getComponentsInternal(Class<T> iface) {
29 return null;
30 }
31
32 @Override
33 protected <T> T getComponentInternal(Class<T> iface, String componentId) {
34 return null;
35 }
36
37 @Override
38 protected String convertClassToName(Class cls) {
39 return super.convertClassToName(cls);
40 }
41 }
42
43 public void testGetComponentSafelyNotInitialised() {
44 assertEquals(ComponentLocator.getComponentSafely(String.class), Optional.empty());
45 }
46
47 public void testGetComponentSafelyEmptyContainer() {
48 ComponentLocator.setComponentLocator(new MockComponentLocator());
49 assertEquals(ComponentLocator.getComponentSafely(String.class), Optional.empty());
50 }
51 }