@Test
public void testInstallBundles() throws Exception {

    String[] locations = new String[] { "file:test.jar" };
    Bundle bundle = Mockito.mock(Bundle.class);
    Mockito.when(context.installBundle("file:test.jar")).thenReturn(bundle);
    Mockito.when(bundle.getBundleId()).thenReturn(Long.valueOf(2));
    CompositeData data = mbean.installBundles(locations);
    BatchInstallResult batch = BatchInstallResult.from(data);
    Assert.assertNotNull(batch);
    Assert.assertEquals(2, batch.getCompleted()[0]);
    Assert.assertTrue(batch.isSuccess());
    Assert.assertNull(batch.getError());
    Assert.assertNull(batch.getRemainingLocationItems());
    Mockito.reset(context);
    Mockito.when(context.installBundle("file:test.jar")).thenThrow(new BundleException("location doesn't exist"));
    CompositeData data2 = mbean.installBundles(locations);
    BatchInstallResult batch2 = BatchInstallResult.from(data2);
    Assert.assertNotNull(batch2);
    Assert.assertNotNull(batch2.getCompleted());
    Assert.assertEquals(0, batch2.getCompleted().length);
    Assert.assertFalse(batch2.isSuccess());
    Assert.assertNotNull(batch2.getError());
    Assert.assertEquals("file:test.jar", batch2.getBundleInError());
    Assert.assertNotNull(batch2.getRemainingLocationItems());
    Assert.assertEquals(0, batch2.getRemainingLocationItems().length);
}