@Override
    public Collection<ComputeNode> getAllWorkers() {
        return availableID2ComputeNode.values();
    }
@Test
    public void testGetAllWorkers() {
        HostBlacklist blockList = SimpleScheduler.getHostBlacklist();
        SystemInfoService sysInfo = GlobalStateMgr.getCurrentState().getNodeMgr().getClusterInfo();

        List<Long> availList = prepareNodeAliveAndBlock(sysInfo, blockList);
        WorkerProvider provider = newWorkerProvider();
        // allWorkers returns only available workers
        Collection<ComputeNode> allWorkers = provider.getAllWorkers();

        Assert.assertEquals(availList.size(), allWorkers.size());
        for (ComputeNode node : allWorkers) {
            Assert.assertTrue(availList.contains(node.getId()));
        }
        List<Long> allWorkerIds = allWorkers.stream().map(ComputeNode::getId).collect(Collectors.toList());
        for (long availId : availList) {
            Assert.assertTrue(allWorkerIds.contains(availId));
        }
        // strictly the same
        List<Long> allAvailNodeIds = provider.getAllAvailableNodes();
        Assert.assertEquals(allWorkerIds, allAvailNodeIds);
    }