@Test public void testSetRole() { controller.connectedSwitches.add(new OFSwitchImpl()); RoleChanger roleChanger = createMock(RoleChanger.class); roleChanger.submitRequest(controller.connectedSwitches, Role.SLAVE); controller.roleChanger = roleChanger; assertEquals("Check that update queue is empty", 0, controller.updates.size()); replay(roleChanger); controller.setRole(Role.SLAVE); verify(roleChanger); Controller.IUpdate upd = controller.updates.poll(); assertNotNull("Check that update queue has an update", upd); assertTrue("Check that update is HARoleUpdate", upd instanceof Controller.HARoleUpdate); Controller.HARoleUpdate roleUpd = (Controller.HARoleUpdate)upd; assertSame(null, roleUpd.oldRole); assertSame(Role.SLAVE, roleUpd.newRole); }
@Test public void testSetRole() { controller.connectedSwitches.add(new OFSwitchImpl()); RoleChanger roleChanger = createMock(RoleChanger.class); roleChanger.submitRequest(controller.connectedSwitches, Role.SLAVE); controller.roleChanger = roleChanger; assertEquals("Check that update queue is empty", 0, controller.updates.size()); replay(roleChanger); controller.setRole(Role.SLAVE, "Testing"); controller.doSetRole(); // avoid wait verify(roleChanger); Controller.IUpdate upd = controller.updates.poll(); assertNotNull("Check that update queue has an update", upd); assertTrue("Check that update is HARoleUpdate", upd instanceof Controller.HARoleUpdate); Controller.HARoleUpdate roleUpd = (Controller.HARoleUpdate)upd; assertSame(Role.MASTER, roleUpd.oldRole); assertSame(Role.SLAVE, roleUpd.newRole); }
@Test public void testSetRole() { controller.connectedSwitches.add(new OFSwitchImpl()); RoleChanger roleChanger = createMock(RoleChanger.class); roleChanger.submitRequest(controller.connectedSwitches, Role.SLAVE); controller.roleChanger = roleChanger; assertEquals("Check that update queue is empty", 0, controller.updates.size()); replay(roleChanger); controller.setRole(Role.SLAVE); controller.doSetRole(); // avoid wait verify(roleChanger); Controller.IUpdate upd = controller.updates.poll(); assertNotNull("Check that update queue has an update", upd); assertTrue("Check that update is HARoleUpdate", upd instanceof Controller.HARoleUpdate); Controller.HARoleUpdate roleUpd = (Controller.HARoleUpdate)upd; assertSame(Role.MASTER, roleUpd.oldRole); assertSame(Role.SLAVE, roleUpd.newRole); }
@Override public void addUpdateToQueue(final IUpdate update) { if (useAsyncUpdates) { mostRecentUpdateFuture = executorService.submit(new Runnable() { @Override public void run() { update.dispatch(); } }); } else { update.dispatch(); } }
/** * Dispatches a new role change notification * @param oldRole * @param newRole */ public void transitionToActive() { IUpdate update = new IUpdate() { @Override public void dispatch() { for (IHAListener rl : haListeners.getOrderedListeners()) { rl.transitionToActive(); } } }; addUpdateToQueue(update); }
/** * Helper method that mocks up the controller and sets the supplied role * @param role the desired role to pass to setRole */ private void setRoleAndMockController(HARole role) { reset(controller); controller.addUpdateToQueue(anyObject(IUpdate.class)); expectLastCall().anyTimes(); replay(controller); roleManager.setRole(role, "test"); }