private static void RemoveOldRefsFrom(IAcceptAppenderRef loggerModel, string name) { XmlNodeList oldRefs = loggerModel.Node.SelectNodes($"appender-ref[@ref='{name}']"); foreach (XmlNode appenderRef in oldRefs) { loggerModel.Node.RemoveChild(appenderRef); } }
public void Save_ShouldRemoveOldIncomingRefs_WhenNameHasChanged_AndRefIsEnabled() { //Original name is "appender0" mNameProperty.Value = "someOtherName"; //Let's try to add a ref to the asyncAppender (which already exists with the original name) IAcceptAppenderRef loggerModel = mSut.RefsCollection.First(r => ((NamedModel)r).Name == "asyncAppender"); loggerModel.IsEnabled = true; mSut.Save(mXmlDoc, mXmlDoc.CreateElement("appender")); //Selects all "appender-ref" nodes with the "ref" attribute XmlNodeList appenderRefs = loggerModel.Node.SelectNodes("appender-ref[@ref]"); Assert.IsNotNull(appenderRefs); Assert.AreEqual(1, appenderRefs.Count); Assert.AreEqual("someOtherName", appenderRefs[0].Attributes["ref"].Value); }