### Question:
DefaultLocalNode implements MutableLocalNode { @Override public void setEnode(final EnodeURL enode) throws NodeAlreadySetException { if (peer.isPresent()) { throw new NodeAlreadySetException("Attempt to set already initialized local node"); } this.peerInfo = Optional.of( new PeerInfo( p2pVersion, clientId, supportedCapabilities, enode.getListeningPortOrZero(), enode.getNodeId())); this.peer = Optional.of(DefaultPeer.fromEnodeURL(enode)); isReady.set(true); } private  DefaultLocalNode(
      final String clientId, final int p2pVersion, final List<Capability> supportedCapabilities); static DefaultLocalNode create(
      final String clientId, final int p2pVersion, final List<Capability> supportedCapabilities); @Override void setEnode(final EnodeURL enode); @Override PeerInfo getPeerInfo(); @Override Peer getPeer(); @Override boolean isReady();  }### Answer:
@Test public void setEnode() { final MutableLocalNode localNode = createLocalNode(); localNode.setEnode(enode); assertThat(localNode.isReady()).isTrue(); validateReadyNode(localNode); assertThatThrownBy(() -> localNode.setEnode(enode)) .isInstanceOf(MutableLocalNode.NodeAlreadySetException.class); }