@Test
    public void executeScenario() throws UnknownHostException {
        logger_.info("[Repair Scenario 1 Start] Peer on \"0\" repairs single peer on \"1\"");
        Injector injector = ScenarioSharedState.getInjector();
        routingTableInit(injector);

        LocalPeerContext context = injector.getInstance(LocalPeerContext.class);
        ExchangeService exchangeService = injector.getInstance(ExchangeService.class);

        Collection<Host> conjugateList = context.getLocalRT().getLevel(0);
        if (conjugateList.size() != 1) {
            logger_.error("Conjugate subtree is overpopulated.");
            System.exit(1);
        }
        Host conjugate = null;
        for (Host host : conjugateList) {
            conjugate = host;
        }

        logger_.info("I will communicate with conjugate {}:{} [path: {}]",
                new Object[]{
                        conjugate.getAddress(),
                        conjugate.getPort(),
                        conjugate.getHostPath()});

        try {
            exchangeService.execute(conjugate);
        } catch (CommunicationException e) {
            logger_.warn("{}", e.getMessage());
            RepairService repairService = injector.getInstance(RepairService.class);
            repairService.fixNode(conjugate);
        }

        logger_.info("Localhost instance: {}:{} [path: {}]",
                new Object[]{
                        context.getLocalRT().getLocalhost().getAddress(),
                        context.getLocalRT().getLocalhost().getPort(),
                        context.getLocalRT().getLocalhost().getHostPath()});
        logger_.info("[Repair Scenario 1 End]");

        Assert.assertTrue(context.getLocalRT().getLocalhost().getAddress().getHostAddress().compareTo(localIP_) == 0);
        Assert.assertTrue(context.getLocalRT().getLocalhost().getPort() == localPort_);
        Assert.assertTrue(context.getLocalRT().getLocalhost().getHostPath().toString().compareTo(expectedFinalPath_) == 0);
    }