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 shouldFailValidation_WhenSameMaterialUsedBy2ConfigRepos() {
        assertThatThrownBy(() -> xmlLoader.loadConfigHolder(configWithConfigRepos(
                """
                          <config-repos>
                            <config-repo pluginId="myplugin" id="id1">
                              <git url="https://github.com/tomzo/gocd-indep-config-part.git" />
                            </config-repo >
                            <config-repo pluginId="myotherplugin" id="id2">
                              <git url="https://github.com/tomzo/gocd-indep-config-part.git" />
                            </config-repo >
                          </config-repos>
                        """
        )))
                .isInstanceOf(GoConfigInvalidException.class);
    }