@Test @Ignore("Cannot mock the log") public void canDoActionSucceedsWhenHasPeersThrowsException() throws Exception { setupGlusterMock(true, new VDS(), true); when(glusterUtil.getPeers(any(EngineSSHClient.class))).thenThrow(new RuntimeException()); assertTrue(commandMock.canDoAction()); }
private void setupGlusterMock(boolean clusterHasServers, VDS upServer, boolean hasPeers) throws Exception { setupCommonMock(true); when(commandMock.createReturnValue()).thenCallRealMethod(); when(commandMock.getReturnValue()).thenCallRealMethod(); doCallRealMethod().when(commandMock).addCanDoActionMessage(any(EngineMessage.class)); when(commandMock.getGlusterUtil()).thenReturn(glusterUtil); when(glusterUtil.getPeers(any(EngineSSHClient.class))) .thenReturn(hasPeers ? Collections.singleton(PEER_1) : Collections.<String>emptySet()); when(commandMock.getGlusterDBUtils()).thenReturn(glusterDBUtils); when(clusterUtils.hasServers(any(Guid.class))).thenReturn(clusterHasServers); when(vdsDaoMock.getAllForVdsGroup(any(Guid.class))) .thenReturn( mockVdsInDb(clusterHasServers ? VDSStatus.Maintenance : VDSStatus.Initializing)); when(clusterUtils.getUpServer(any(Guid.class))).thenReturn(upServer); // commandMock.log = log; }