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