* @throws Exception in case of failure.
*/
private void doVerifyIndex(ManageRealmCommand cmd, int index, Config[] realms) throws Exception {
// prepare mocks
Session session = createMock(Session.class);
BundleContext bundleContext = createMock(BundleContext.class);
Bundle bundle = createMock(Bundle.class);
// prepare command
cmd.index = index;
cmd.setRealms(Arrays.<JaasRealm> asList(realms));
cmd.setSession(session);
for (Config realm : realms)
realm.setBundleContext(bundleContext);
Object[] mocks = { session, bundleContext, bundle };
expect(session.get(ManageRealmCommand.JAAS_REALM)).andReturn(null).anyTimes();
expect(session.get(ManageRealmCommand.JAAS_ENTRY)).andReturn(null).anyTimes();
expect(session.get(ManageRealmCommand.JAAS_CMDS)).andReturn(null).anyTimes();
expect(bundleContext.getBundle()).andReturn(bundle).anyTimes();
expect(bundle.getBundleId()).andReturn(4711L).anyTimes();
// verify that the correct realm is returned -- cmd.index is 1-based
session.put(ManageRealmCommand.JAAS_REALM, realms[index - 1]);
session.put(eq(ManageRealmCommand.JAAS_ENTRY), anyObject());
session.put(eq(ManageRealmCommand.JAAS_CMDS), anyObject());
// start the test
replay(mocks);
cmd.execute();
verify(mocks);