@Override
    public boolean isDataNodeAvailable(long dataNodeId) {
        // DataNode and ComputeNode is exchangeable in SHARED_DATA mode
        return availableID2ComputeNode.containsKey(dataNodeId);
    }
@Test
    public void testIsDataNodeAvailable() {
        HostBlacklist blockList = SimpleScheduler.getHostBlacklist();
        blockList.hostBlacklist.clear();
        SystemInfoService sysInfo = GlobalStateMgr.getCurrentState().getNodeMgr().getClusterInfo();

        List<Long> availList = prepareNodeAliveAndBlock(sysInfo, blockList);
        WorkerProvider provider = newWorkerProvider();

        for (long id = -1; id < 16; id++) {
            boolean isAvail = provider.isDataNodeAvailable(id);
            ComputeNode worker = provider.getWorkerById(id);
            if (!availList.contains(id)) {
                Assert.assertFalse(isAvail);
            } else {
                Assert.assertEquals(id2AllNodes.get(id), worker);
                Assert.assertTrue(isAvail);
            }
        }
    }