@Test
  public void testGetNodeConfigForMultiNode() throws IOException {
    Config testConfig =
        new Config(
            new LinkedHashMap<>(
                ImmutableMap.of(
                    "builder_host_name", "builder1.dev.com",
                    "additional_runners",
                        "http://runner1.dev.com:8080/runner/internal/runner,http://runner2.dev.com:8080/runner/internal/runner",
                    "analytics_host_name", "analytics.dev.com",
                    "additional_builders", "",
                    "host_url", "local.dev.com")));
    doReturn(testConfig).when(configManager).loadInstalledCodenvyConfig(InstallType.MULTI_SERVER);
    doReturn(InstallType.MULTI_SERVER).when(configManager).detectInstallationType();

    Response result = service.getNodesList();
    assertEquals(result.getStatus(), Response.Status.OK.getStatusCode());
    assertEquals(
        result.getEntity(),
        "{\n"
            + "  \"host_url\" : \"local.dev.com\",\n"
            + "  \"builder_host_name\" : \"builder1.dev.com\",\n"
            + "  \"additional_builders\" : [ ],\n"
            + "  \"analytics_host_name\" : \"analytics.dev.com\",\n"
            + "  \"additional_runners\" : [ \"runner1.dev.com\", \"runner2.dev.com\" ]\n"
            + "}");
  }
  @Test
  public void testGetNodeConfigError() throws IOException {
    doThrow(new RuntimeException("error")).when(configManager).detectInstallationType();

    Response result = service.getNodesList();
    assertEquals(result.getStatus(), Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
    assertEquals(result.getEntity().toString(), "{message=error}");
  }
  @Test
  public void testGetNodeConfigWhenPropertiesIsAbsence() throws IOException {
    Config testConfig = new Config(new LinkedHashMap<String, String>());
    doReturn(testConfig).when(configManager).loadInstalledCodenvyConfig(InstallType.MULTI_SERVER);
    doReturn(InstallType.MULTI_SERVER).when(configManager).detectInstallationType();

    Response result = service.getNodesList();
    assertEquals(result.getStatus(), Response.Status.OK.getStatusCode());
    assertEquals(result.getEntity(), "{ }");
  }
  @Test
  public void testGetNodeConfigWhenSingleNode() throws IOException {
    Config config = mock(Config.class);
    doReturn("local").when(config).getHostUrl();
    doReturn(null).when(config).getAllValues("additional_builders");
    doReturn(null).when(config).getAllValues("additional_runners");

    doReturn(InstallType.SINGLE_SERVER).when(configManager).detectInstallationType();
    doReturn(config).when(configManager).loadInstalledCodenvyConfig(InstallType.SINGLE_SERVER);

    Response result = service.getNodesList();
    assertEquals(result.getStatus(), Response.Status.OK.getStatusCode());
    assertEquals(result.getEntity(), "{\n" + "  \"host_url\" : \"local\"\n" + "}");
  }