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 shouldLoadInvertFilterForScmMaterial() throws Exception {
        String content = config(
                """
                        <scms>
                        <scm id="abcd" name="scm_name">
                          <pluginConfiguration id="GitPathMaterial" version="1" />
                          <configuration>
                            <property>
                              <key>url</key>
                              <value>git@github.com:gocd/gocd.git</value>
                            </property>
                          </configuration>
                        </scm>
                        </scms>
                        <pipelines group="first">
                        <pipeline name="pipeline">
                          <materials>
                            <scm ref="abcd" invertFilter="true"/>
                          </materials>
                          <stage name="stage">
                            <jobs>
                                <job name="functional">
                                    <tasks>
                                      <exec command="echo">
                                        <runif status="passed" />
                                      </exec>
                                    </tasks>
                                </job>
                            </jobs>
                          </stage>
                        </pipeline>
                        </pipelines>""", CONFIG_SCHEMA_VERSION);

        CruiseConfig config = xmlLoader.loadConfigHolder(goConfigMigration.upgradeIfNecessary(content)).config;

        MaterialConfig materialConfig = config
                .getPipelineConfigByName(new CaseInsensitiveString("pipeline"))
                .materialConfigs().get(0);

        assertThat(materialConfig).isInstanceOf(PluggableSCMMaterialConfig.class);
        assertThat(materialConfig.isInvertFilter()).isTrue();
    }