package de.twenty11.skysail.server.ext.osgimonitor.resources;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Version;
import org.restlet.Request;
import org.restlet.representation.Representation;
import de.twenty11.skysail.server.ext.osgimonitor.OsgiMonitorViewerApplication;
import de.twenty11.skysail.server.ext.osgimonitor.test.BaseTests;
import static org.junit.Assert.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.is;
public class BundlesResourceTest extends BaseTests {
private BundlesResource resource;
@Before
public void setUp() throws Exception {
OsgiMonitorViewerApplication spy = setUpRestletApplication();
BundleContext context = mock(BundleContext.class);
Bundle bundle = mock(Bundle.class);
when(bundle.getBundleId()).thenReturn(99l);
when(bundle.getSymbolicName()).thenReturn("symbolic");
when(bundle.getLastModified()).thenReturn(111l);
when(bundle.getVersion()).thenReturn(new Version("1.2.3.qualifier"));
when(bundle.getState()).thenReturn(32);
Bundle[] bundles = new Bundle[1];
bundles[0] = bundle;
when(context.getBundles()).thenReturn(bundles);
when(spy.getBundleContext()).thenReturn(context);
resource = new BundlesResource();
Request request = mock(Request.class);
ConcurrentMap<String, Object> attributes = new ConcurrentHashMap<String, Object>();
attributes.putIfAbsent("bundleId", "99");
when(request.getAttributes()).thenReturn(attributes);
resource.init(spy.getContext(), request, null);
}
// @Test
// @Ignore
// public void returns_bundles_with_proper_values() throws Exception {
// List<BundleDescriptor> bundles = getBundles();
// assertThat(bundles.size(), is(equalTo(1)));
// assertThat(bundles.get(0).getVersion(), is(equalTo("1.2.3.qualifier")));
// assertThat(bundles.get(0).getState(), is(equalTo("Active")));
//
// }
@Test
@Ignore
public void gives_error_message_for_post_when_location_doesnt_start_with_prefix() throws Exception {
Representation answer = resource.install("wrongLocation");
assertThat(answer.getText(), is(equalTo("location didn't start with 'prefix'")));
}
}