public void SetUp()
        {
            const string xml = "<log4net>\n" +
                               "  <appender name=\"appender0\">\n" +
                               "    <appender-ref ref=\"appender1\" />\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender1\">\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender2\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender3\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"asyncAppender\" type=\"Log4Net.Async.AsyncForwardingAppender,Log4Net.Async\">\n" +
                               "    <appender-ref ref=\"appender0\" />\n" +
                               "  </appender>\n" +
                               "  <root>\n" +
                               "    <appender-ref ref=\"asyncAppender\" />\n" +
                               "  </root>\n" +
                               "</log4net>";

            mXmlDoc = new XmlDocument();

            ReadOnlyCollection <IProperty> properties            = new ReadOnlyCollection <IProperty>(new List <IProperty>());
            IElementConfiguration          appenderConfiguration = GetAppenderConfiguration(mXmlDoc, xml);

            mNameProperty = new Name(appenderConfiguration);
            mNameProperty.Load(appenderConfiguration.OriginalNode);

            mSut = new IncomingRefs(mNameProperty, appenderConfiguration);
        }
        public void Load_ShouldNotLoadAppender_WithNoName()
        {
            const string xml = "<log4net>\n" +
                               "  <appender name=\"appender0\">\n" +
                               "    <appender-ref ref=\"appender1\" />\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender1\">\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender2\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender3\">\n" +
                               "  </appender>\n" +
                               "  <appender type=\"Log4Net.Async.AsyncForwardingAppender,Log4Net.Async\">\n" +
                               "    <appender-ref ref=\"appender0\" />\n" +
                               "  </appender>\n" +
                               "</log4net>";

            ReadOnlyCollection <IProperty> properties            = new ReadOnlyCollection <IProperty>(new List <IProperty>());
            IElementConfiguration          appenderConfiguration = GetAppenderConfiguration(mXmlDoc, xml);

            mNameProperty = new Name(appenderConfiguration);

            mSut = new IncomingRefs(mNameProperty, appenderConfiguration);

            Assert.AreEqual(0, mSut.RefsCollection.Count);
        }
        public void Load_ShouldNotLoadRoot_WhenNonexistent()
        {
            const string xml = "<log4net>\n" +
                               "  <appender name=\"appender0\">\n" +
                               "    <appender-ref ref=\"appender1\" />\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender1\">\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender2\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender3\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"asyncAppender\" type=\"Log4Net.Async.AsyncForwardingAppender,Log4Net.Async\">\n" +
                               "    <appender-ref ref=\"appender0\" />\n" +
                               "  </appender>\n" +
                               "</log4net>";

            ReadOnlyCollection <IProperty> properties            = new ReadOnlyCollection <IProperty>(new List <IProperty>());
            IElementConfiguration          appenderConfiguration = GetAppenderConfiguration(mXmlDoc, xml);

            mNameProperty = new Name(appenderConfiguration);

            mSut = new IncomingRefs(mNameProperty, appenderConfiguration);

            Assert.AreEqual(1, mSut.RefsCollection.Count);
            Assert.IsTrue(mSut.RefsCollection.All(r => !r.IsEnabled)); //Locations aren't enabled until a load is done with this appender's name
            Assert.IsTrue(mSut.RefsCollection.All(r => r.Node.Name != "root"));
        }