@Test
 public void assertLeaderElection() {
   leaderElectionService.leaderElection();
   verify(jobNodeStorage)
       .executeInLeader(
           eq("leader/election/latch"), Matchers.<LeaderElectionExecutionCallback>any());
 }
 @Test
 public void assertLeaderElectionJobListenerWhenIsLeaderHostPathAndIsRemoveAndIsLeader() {
   when(leaderElectionService.hasLeader()).thenReturn(true);
   electionListenerManager.new LeaderElectionJobListener()
       .dataChanged(
           null,
           new TreeCacheEvent(
               TreeCacheEvent.Type.NODE_REMOVED,
               new ChildData("/testJob/leader/election/host", null, "localhost".getBytes())),
           "/testJob/leader/election/host");
   verify(leaderElectionService).hasLeader();
   verify(leaderElectionService, times(0)).leaderElection();
 }
 @Test
 public void assertLeaderElectionJobListenerWhenJobShutdownAndIsLeader() {
   when(leaderElectionService.isLeader()).thenReturn(true);
   when(serverNode.isLocalJobPausedPath("/testJob/server/mockedIP/shutdown")).thenReturn(true);
   electionListenerManager.new LeaderElectionJobListener()
       .dataChanged(
           null,
           new TreeCacheEvent(
               TreeCacheEvent.Type.NODE_ADDED,
               new ChildData("/testJob/server/mockedIP/shutdown", null, "localhost".getBytes())),
           "/testJob/server/mockedIP/shutdown");
   verify(leaderElectionService).removeLeader();
 }
 @Test
 public void
     assertLeaderElectionJobListenerWhenIsLeaderHostPathAndIsRemoveAndIsNotLeaderWithoutAvailableServers() {
   when(leaderElectionService.hasLeader()).thenReturn(false);
   when(serverService.getAvailableServers()).thenReturn(Collections.<String>emptyList());
   electionListenerManager.new LeaderElectionJobListener()
       .dataChanged(
           null,
           new TreeCacheEvent(
               TreeCacheEvent.Type.NODE_REMOVED,
               new ChildData("/testJob/leader/election/host", null, "localhost".getBytes())),
           "/testJob/leader/election/host");
   verify(leaderElectionService).hasLeader();
   verify(serverService).getAvailableServers();
   verify(leaderElectionService, times(0)).leaderElection();
 }
 @Test
 public void assertHasLeader() {
   when(jobNodeStorage.isJobNodeExisted("leader/election/host")).thenReturn(true);
   assertTrue(leaderElectionService.hasLeader());
 }
 @Test
 public void assertIsLeader() {
   when(jobNodeStorage.isJobNodeExisted("leader/election/host")).thenReturn(false, true);
   when(jobNodeStorage.getJobNodeData("leader/election/host")).thenReturn("mockedIP");
   assertTrue(leaderElectionService.isLeader());
 }