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); } } }
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); } } }
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); } } }
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); } } }