Framework spiedMBean = Mockito.spy(mbean);
InputStream stream = Mockito.mock(InputStream.class);
Mockito.doReturn(stream).when(spiedMBean).createStream(Mockito.anyString());
CompositeData data = spiedMBean.installBundlesFromURL(new String[] { "file:test.jar" }, new String[] { "test.jar" });
Assert.assertNotNull(data);
BatchInstallResult batch = BatchInstallResult.from(data);
Assert.assertEquals(2, batch.getCompleted()[0]);
Assert.assertTrue(batch.isSuccess());
Assert.assertNull(batch.getError());
Assert.assertNull(batch.getRemainingLocationItems());
Mockito.reset(context);
Mockito.when(spiedMBean.createStream(Mockito.anyString())).thenReturn(stream);
Mockito.when(context.installBundle(Mockito.anyString(), Mockito.any(InputStream.class))).thenThrow(
new BundleException("location doesn't exist"));
CompositeData data2 = spiedMBean.installBundlesFromURL(new String[] { "file:test.jar" }, new String[] { "test.jar" });
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);
}