@Test
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]);
}