@Override public void waitForStartup() throws InterruptedException { synchronized(zk) { while(!zk.isRunning() && !Thread.currentThread().isInterrupted()) { zk.wait(20); } } }
private boolean isRunning() { return self.isRunning() && zk.isRunning(); }
private boolean isRunning() { return self.isRunning() && zk.isRunning(); }
@Before public void setUp() { outputWriter = new StringWriter(); ServerCnxn serverCnxnMock = mock(ServerCnxn.class); LeaderZooKeeperServer zks = mock(LeaderZooKeeperServer.class); when(zks.isRunning()).thenReturn(true); providerMock = mock(ServerStats.Provider.class); when(zks.serverStats()).thenReturn(new ServerStats(providerMock)); ZKDatabase zkDatabaseMock = mock(ZKDatabase.class); when(zks.getZKDatabase()).thenReturn(zkDatabaseMock); Leader leaderMock = mock(Leader.class); when(leaderMock.getProposalStats()).thenReturn(new BufferStats()); when(zks.getLeader()).thenReturn(leaderMock); ServerCnxnFactory serverCnxnFactory = mock(ServerCnxnFactory.class); ServerCnxn serverCnxn = mock(ServerCnxn.class); List<ServerCnxn> connections = new ArrayList<>(); connections.add(serverCnxn); when(serverCnxnFactory.getConnections()).thenReturn(connections); statCommand = new StatCommand(new PrintWriter(outputWriter), serverCnxnMock, FourLetterCommands.statCmd); statCommand.setZkServer(zks); statCommand.setFactory(serverCnxnFactory); }
@Test public void testStatResetWithLeader() { // Arrange LeaderZooKeeperServer leaderZks = mock(LeaderZooKeeperServer.class); when(leaderZks.isRunning()).thenReturn(true); when(leaderZks.serverStats()).thenReturn(serverStats); Leader leader = mock(Leader.class); when(leaderZks.getLeader()).thenReturn(leader); statResetCommand.setZkServer(leaderZks); when(serverStats.getServerState()).thenReturn("leader"); BufferStats bufferStats = mock(BufferStats.class); when(leader.getProposalStats()).thenReturn(bufferStats); // Act statResetCommand.commandRun(); // Assert String output = outputWriter.toString(); assertEquals("Server stats reset.\n", output); verify(serverStats, times(1)).reset(); verify(bufferStats, times(1)).reset(); } }
while(!leader.zk.isRunning() && !this.isInterrupted()){ leader.zk.wait(20);