View Javadoc
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.junit.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.Silent.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  }