public void SetUp()
        {
            IConfigurationXml configFactory = new ConfigurationFactory(Substitute.For <IToastService>()).Create(Filename);

            const string sutFieldName = "LoadAndSave";

            mSut = (ICanLoadAndSaveXml)configFactory.GetType().GetField(sutFieldName, BindingFlags.NonPublic | BindingFlags.Instance)?.GetValue(configFactory);

            if (mSut == null)
            {
                Assert.Fail($"Unable to find private instance field '{sutFieldName}'");
            }

            mXmlDoc = Substitute.For <IXmlDocument>();

            IXmlDocumentFactory xmlDocFactory = Substitute.For <IXmlDocumentFactory>();

            xmlDocFactory.Create().Returns(mXmlDoc);

            SetSutField("mXmlDocFactory", xmlDocFactory);

            IFile file = Substitute.For <IFile>();

            file.Exists(Filename).Returns(ci => mFileExists);

            SetSutField("mFile", file);

            mXmlWriterFactory = Substitute.For <IXmlWriterFactory>();
            SetSutField("mXmlWriterFactory", mXmlWriterFactory);

            //Substitute fileStreamFactory to avoid disk access attempts
            IFileStreamFactory fileStreamFactory = Substitute.For <IFileStreamFactory>();

            SetSutField("mFileStreamFactory", fileStreamFactory);
        }
예제 #2
0
        public virtual IssueReport Parse(IssueTypes issueType)
        {
            var issueInfoAndInstanceProvider = _issueInfoAndInstanceProviderRetriever.Retrieve(issueType);

            var rawIssueReport = _xmlDocumentFactory.Create(issueInfoAndInstanceProvider.ReportFileName);

            var issueReport = new IssueReport
            {
                DateTime = _issueReportDateTimeParser.Parse(rawIssueReport),
                Issues   = _issueReportIssueParser.Parse(rawIssueReport, issueInfoAndInstanceProvider)
            };

            return(issueReport);
        }
            public IXmlDocument Load()
            {
                IXmlDocument configXml = mXmlDocFactory.Create();

                if (mFile.Exists(mFilename))
                {
                    configXml.Load(mFilename);
                }
                else
                {
                    configXml.AppendChild(configXml.CreateElement(Log4NetXmlConstants.Log4Net));
                }

                return(configXml);
            }