1 package com.atlassian.sal.core.lifecycle;
2
3 import com.atlassian.sal.api.lifecycle.LifecycleAware;
4 import org.junit.Test;
5 import org.junit.runner.RunWith;
6 import org.mockito.runners.MockitoJUnitRunner;
7 import org.osgi.framework.ServiceReference;
8
9 import java.util.ArrayList;
10 import java.util.List;
11
12 import static com.atlassian.sal.core.lifecycle.LifecycleLog.getPluginKeyFromBundle;
13 import static com.atlassian.sal.core.lifecycle.LifecycleLog.listPluginKeys;
14 import static org.hamcrest.Matchers.equalTo;
15 import static org.hamcrest.Matchers.is;
16 import static org.junit.Assert.assertThat;
17 import static org.mockito.Mockito.mock;
18
19 @RunWith(MockitoJUnitRunner.class)
20 public class TestLifecycleLog extends TestDefaultLifecycleManagerBase {
21 @Test
22 public void assertPluginKeysEnlistedForStaleServices() {
23 final List<ServiceReference<LifecycleAware>> services = registerServices(new String[]{"key1", "key2", "key3"});
24 services.add(registerService(null, mock(LifecycleAware.class)));
25 assertThat(listPluginKeys(services), is(equalTo("[key1, key2, key3, <stale service reference>]")));
26 }
27
28 @Test
29 public void assertPluginKeysEnlisted() {
30 final List<ServiceReference<LifecycleAware>> services = registerServices(new String[]{"key1", "key2", "key3"});
31 assertThat(listPluginKeys(services), is(equalTo("[key1, key2, key3]")));
32 }
33
34 @Test
35 public void assertBundleKeyRetrieved() {
36 assertThat(getPluginKeyFromBundle(mockBundle("key")), is(equalTo("key")));
37 }
38
39 @Test
40 public void assertBundleKeyRetrievedForStaleService() {
41 assertThat(getPluginKeyFromBundle(null), is(equalTo("<stale service reference>")));
42 }
43
44 private List<ServiceReference<LifecycleAware>> registerServices(final String pluginKeys[]) {
45 final List<ServiceReference<LifecycleAware>> services = new ArrayList<ServiceReference<LifecycleAware>>();
46
47 for (final String k : pluginKeys) {
48 services.add(registerService(mockBundle(k), mock(LifecycleAware.class)));
49 }
50 return services;
51 }
52 }