public void testUpdateBundles() throws Exception {
Bundle bundle = Mockito.mock(Bundle.class);
Mockito.when(context.getBundle(5)).thenReturn(bundle);
CompositeData data = mbean.updateBundles(new long[] { 5 });
Mockito.verify(bundle).update();
BatchActionResult batch = BatchActionResult.from(data);
Assert.assertEquals(5, batch.getCompleted()[0]);
Assert.assertTrue(batch.isSuccess());
Assert.assertNull(batch.getError());
Assert.assertNull(batch.getRemainingItems());
CompositeData data2 = mbean.updateBundles(null);
BatchActionResult batch2 = BatchActionResult.from(data2);
Assert.assertNull(batch2.getCompleted());
Assert.assertFalse(batch2.isSuccess());
Assert.assertNotNull(batch2.getError());
Assert.assertNull(batch2.getRemainingItems());
Mockito.reset(bundle);
CompositeData data3 = mbean.updateBundles(new long[] { 6 });
Mockito.when(context.getBundle(6)).thenReturn(bundle);
Mockito.doThrow(new BundleException("")).when(bundle).update();
BatchActionResult batch3 = BatchActionResult.from(data3);
Assert.assertEquals(0, batch3.getCompleted().length);
Assert.assertFalse(batch3.isSuccess());
Assert.assertNotNull(batch3.getError());
Assert.assertEquals(6, batch3.getBundleInError());
Bundle bundle6 = Mockito.mock(Bundle.class);
Bundle bundle8 = Mockito.mock(Bundle.class);
Bundle bundle7 = Mockito.mock(Bundle.class);
Mockito.when(context.getBundle(6)).thenReturn(bundle6);
Mockito.when(context.getBundle(8)).thenReturn(bundle8);
Mockito.when(context.getBundle(7)).thenReturn(bundle7);
Mockito.doThrow(new BundleException("")).when(bundle8).update();
CompositeData data4 = mbean.updateBundles(new long[] { 6, 8, 7 });
BatchActionResult batch4 = BatchActionResult.from(data4);
Mockito.verify(bundle6).update();
Assert.assertEquals(1, batch4.getCompleted().length);
// should contain only bundleid 6
Assert.assertEquals(6, batch4.getCompleted()[0]);
Assert.assertFalse(batch4.isSuccess());
Assert.assertNotNull(batch4.getError());
Assert.assertEquals(8, batch4.getBundleInError());
Assert.assertEquals(1, batch4.getRemainingItems().length);
// should contain only bundleid 7
Assert.assertEquals(7, batch4.getRemainingItems()[0]);
}