### Question:
DiscoveryNodeManager implements InternalNodeManager { @Override public InternalNode getCurrentNode() { return currentNode; } @Inject  DiscoveryNodeManager(
            @ServiceType("presto") ServiceSelector serviceSelector,
            NodeInfo nodeInfo,
            FailureDetector failureDetector,
            NodeVersion expectedNodeVersion,
            @ForNodeManager HttpClient httpClient,
            InternalCommunicationConfig internalCommunicationConfig); @PostConstruct void startPollingNodeStates(); @PreDestroy void stop(); @Override void refreshNodes(); @Override synchronized AllNodes getAllNodes(); @Managed int getActiveNodeCount(); @Managed int getInactiveNodeCount(); @Managed int getShuttingDownNodeCount(); @Override Set<InternalNode> getNodes(NodeState state); @Override synchronized Set<InternalNode> getActiveConnectorNodes(CatalogName catalogName); @Override InternalNode getCurrentNode(); @Override synchronized Set<InternalNode> getCoordinators(); @Override synchronized void addNodeChangeListener(Consumer<AllNodes> listener); @Override synchronized void removeNodeChangeListener(Consumer<AllNodes> listener);  }### Answer:
@Test public void testGetCurrentNode() { NodeInfo nodeInfo = new NodeInfo(new NodeConfig() .setEnvironment("test") .setNodeId(currentNode.getNodeIdentifier())); DiscoveryNodeManager manager = new DiscoveryNodeManager(selector, nodeInfo, new NoOpFailureDetector(), expectedVersion, testHttpClient, internalCommunicationConfig); try { assertEquals(manager.getCurrentNode(), currentNode); } finally { manager.stop(); } }