public GoConfigHolder loadConfigHolder(final String content, Callback callback) throws Exception {
        CruiseConfig configForEdit;
        CruiseConfig config;
        LOGGER.debug("[Config Save] Loading config holder");
        configForEdit = deserializeConfig(content);
        if (callback != null) callback.call(configForEdit);
        config = preprocessAndValidate(configForEdit);

        return new GoConfigHolder(config, configForEdit);
    }
@Test
    void shouldNotAllowConfigWithEmptyEnvironmentsBlock() {
        String content = configWithEnvironments(
                "<environments>\n"
                        + "</environments>", CONFIG_SCHEMA_VERSION);

        assertThatThrownBy(() -> xmlLoader.loadConfigHolder(content))
            .as("XSD should not allow empty environments block")
            .hasMessageContaining("The content of element 'environments' is not complete. One of '{environment}' is expected.");
    }