package de.twenty11.skysail.server.ext.osgimonitor; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; import org.osgi.service.cm.ConfigurationException; import org.osgi.service.component.ComponentContext; import org.restlet.Component; import org.restlet.Context; import de.twenty11.skysail.server.services.ApplicationProvider; import de.twenty11.skysail.server.services.ComponentProvider; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; @RunWith(MockitoJUnitRunner.class) public class ConfigurationTest { @Mock private ApplicationProvider applicationProvider; @Mock private ComponentProvider componentProvider; @Mock private ComponentContext componentContext; @Mock private BundleContext bundleContext; @Mock private ServiceRegistration serviceRegistration; @Mock private Context context; private TestConfiguration testConfiguration = new TestConfiguration(); private Component component = new Component(); private class TestConfiguration extends OsgiMonitorViewerApplication { @Override protected void activate(ComponentContext componentContext) throws ConfigurationException { super.activate(componentContext); } @Override protected void deactivate(ComponentContext componentContext) { super.deactivate(componentContext); } } @Before @Ignore public void createConfiguration() throws Exception { OsgiMonitorViewerApplication application = new OsgiMonitorViewerApplication(); // Mockito.when(bundleContext.registerService(anyString(), anyObject(), (Dictionary<?, ?>) isNull())).thenReturn( // serviceRegistration); Mockito.when(componentContext.getBundleContext()).thenReturn(bundleContext); Mockito.when(componentProvider.getComponent()).thenReturn(component); Mockito.when(applicationProvider.getApplication()).thenReturn(application); } @Test public void can_activate_component() throws Exception { testConfiguration.activate(componentContext); // assertThat(testConfiguration.getApplication().getName(), is(equalTo("osgimonitor"))); } @Test @Ignore public void can_deactivate_component() throws Exception { testConfiguration.activate(componentContext); testConfiguration.deactivate(componentContext); // assertThat(testConfiguration.getApplication(), is(nullValue())); } @Test @Ignore public void can_deal_with_new_application() throws Exception { testConfiguration.activate(componentContext); // testConfiguration.setApplicationProvider(applicationProvider); assertThat(component.getDefaultHost().getRoutes().size(), is(equalTo(1))); } @Test @Ignore public void can_remove_added_application() throws Exception { testConfiguration.activate(componentContext); // testConfiguration.setApplicationProvider(applicationProvider); // testConfiguration.unsetApplicationProvider(applicationProvider); assertThat(component.getDefaultHost().getRoutes().size(), is(equalTo(0))); } }