예제 #1
0
        private static void ReadWriteSyndicationFeed(string file, Func <SyndicationFeed, SyndicationFeedFormatter> feedFormatter, List <AllowableDifference> allowableDifferences = null, Action <SyndicationFeed> verifySyndicationFeedRead = null)
        {
            string serializeFilePath = Path.GetTempFileName();
            bool   toDeletedFile     = true;

            try
            {
                SyndicationFeed feedObjct;
                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    using (XmlReader reader = XmlDictionaryReader.CreateTextReader(fileStream, XmlDictionaryReaderQuotas.Max))
                    {
                        feedObjct = SyndicationFeed.Load(reader);
                        verifySyndicationFeedRead?.Invoke(feedObjct);
                    }
                }

                using (FileStream fileStream = new FileStream(serializeFilePath, FileMode.OpenOrCreate))
                {
                    using (XmlWriter writer = XmlDictionaryWriter.CreateTextWriter(fileStream))
                    {
                        SyndicationFeedFormatter formatter = feedFormatter(feedObjct);
                        formatter.WriteTo(writer);
                    }
                }

                CompareHelper ch = new CompareHelper
                {
                    Diff = new XmlDiff()
                    {
                        Option = XmlDiffOption.IgnoreComments | XmlDiffOption.IgnorePrefix | XmlDiffOption.IgnoreWhitespace | XmlDiffOption.IgnoreChildOrder | XmlDiffOption.IgnoreAttributeOrder
                    },
                    AllowableDifferences = allowableDifferences
                };

                string diffNode = string.Empty;
                if (!ch.Compare(file, serializeFilePath, out diffNode))
                {
                    toDeletedFile = false;
                    string errorMessage = $"The generated file was different from the baseline file:{Environment.NewLine}Baseline: {file}{Environment.NewLine}Actual: {serializeFilePath}{Environment.NewLine}Different Nodes:{Environment.NewLine}{diffNode}";
                    Assert.True(false, errorMessage);
                }
            }
            catch (Exception e)
            {
                Exception newEx = new Exception($"Failed File Name: {file}", e);
                throw newEx;
            }
            finally
            {
                if (toDeletedFile)
                {
                    File.Delete(serializeFilePath);
                }
            }
        }
예제 #2
0
        private static void AtomFeedPositiveTest(string file)
        {
            string serializeFilePath = Path.GetTempFileName();
            bool   toDeletedFile     = true;

            try
            {
                SyndicationFeed feedObjct;

                using (XmlReader reader = XmlReader.Create(file))
                {
                    feedObjct = SyndicationFeed.Load(reader);
                    reader.Close();
                }

                using (XmlWriter writer = XmlWriter.Create(serializeFilePath))
                {
                    Atom10FeedFormatter f = new Atom10FeedFormatter(feedObjct);
                    f.WriteTo(writer);
                    writer.Close();
                }

                CompareHelper ch = new CompareHelper
                {
                    Diff = new XmlDiff()
                    {
                        Option = XmlDiffOption.IgnoreComments | XmlDiffOption.IgnorePrefix | XmlDiffOption.IgnoreWhitespace | XmlDiffOption.IgnoreChildOrder | XmlDiffOption.IgnoreAttributeOrder
                    },
                    AllowableDifferences = GetAtomFeedPositiveTestAllowableDifferences()
                };

                if (!ch.Compare(file, serializeFilePath))
                {
                    toDeletedFile = false;
                    Assert.True(false, $"The generated file was different from the baseline file{Environment.NewLine}Baseline: {file}{Environment.NewLine}Actual: {serializeFilePath}");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine();
                Console.WriteLine("------------------------------");
                Console.WriteLine($"Failed File Name:{file}");
                throw e;
            }
            finally
            {
                if (toDeletedFile)
                {
                    File.Delete(serializeFilePath);
                }
            }
        }
예제 #3
0
        public static void AtomFeedPositiveTest()
        {
            string        dataFile = @"atom_feeds.dat";
            List <string> fileList = GetTestFilesForFeedTest(dataFile);

            foreach (string file in fileList)
            {
                string serializeFilePath = Path.GetTempFileName();
                try
                {
                    SyndicationFeed feedObjct;

                    using (XmlReader reader = XmlReader.Create(file))
                    {
                        feedObjct = SyndicationFeed.Load(reader);
                        reader.Close();
                    }

                    using (XmlWriter writer = XmlWriter.Create(serializeFilePath))
                    {
                        Atom10FeedFormatter f = new Atom10FeedFormatter(feedObjct);
                        f.WriteTo(writer);
                        writer.Close();
                    }

                    CompareHelper ch = new CompareHelper
                    {
                        Diff = new XmlDiff()
                        {
                            Option = XmlDiffOption.IgnoreComments | XmlDiffOption.IgnorePrefix | XmlDiffOption.IgnoreWhitespace | XmlDiffOption.IgnoreChildOrder | XmlDiffOption.IgnoreAttributeOrder
                        },
                        AllowableDifferences = GetAtomFeedPositiveTestAllowableDifferences()
                    };
                    Assert.True(ch.Compare(file, serializeFilePath), $"Failed File Name:{file}");
                }
                catch (Exception e)
                {
                    Console.WriteLine();
                    Console.WriteLine("------------------------------");
                    Console.WriteLine($"Failed File Name:{file}");
                    throw e;
                }
                finally
                {
                    File.Delete(serializeFilePath);
                }
            }
        }
예제 #4
0
        public static void AtomEntryPositiveTest_write()
        {
            string file = @"AtomEntryTest.xml";
            string serializeFilePath = Path.GetTempFileName();
            bool   toDeletedFile     = true;

            SyndicationItem item = new SyndicationItem("SyndicationFeed released for .net Core", "A lot of text describing the release of .net core feature", new Uri("http://contoso.com/news/path"));

            item.Id = "uuid:43481a10-d881-40d1-adf2-99b438c57e21;id=1";
            item.LastUpdatedTime = new DateTimeOffset(Convert.ToDateTime("2017-10-11T11:25:55Z")).UtcDateTime;

            try
            {
                using (FileStream fileStream = new FileStream(serializeFilePath, FileMode.OpenOrCreate))
                {
                    using (XmlWriter writer = XmlDictionaryWriter.CreateTextWriter(fileStream))
                    {
                        Atom10ItemFormatter f = new Atom10ItemFormatter(item);
                        f.WriteTo(writer);
                    }
                }

                CompareHelper ch = new CompareHelper
                {
                    Diff = new XmlDiff()
                    {
                        Option = XmlDiffOption.IgnoreComments | XmlDiffOption.IgnorePrefix | XmlDiffOption.IgnoreWhitespace | XmlDiffOption.IgnoreChildOrder | XmlDiffOption.IgnoreAttributeOrder
                    }
                };

                string diffNode = string.Empty;
                if (!ch.Compare(file, serializeFilePath, out diffNode))
                {
                    toDeletedFile = false;
                    string errorMessage = $"The generated file was different from the baseline file:{Environment.NewLine}Baseline: {file}{Environment.NewLine}Actual: {serializeFilePath}{Environment.NewLine}Different Nodes:{Environment.NewLine}{diffNode}";
                    Assert.True(false, errorMessage);
                }
            }
            finally
            {
                if (toDeletedFile)
                {
                    File.Delete(serializeFilePath);
                }
            }
        }