Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs')
-rw-r--r--src/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs116
1 files changed, 112 insertions, 4 deletions
diff --git a/src/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs b/src/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs
index ef2665785e..ee89b27219 100644
--- a/src/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs
+++ b/src/System.ServiceModel.Syndication/tests/BasicScenarioTests.cs
@@ -9,6 +9,7 @@ using System.ServiceModel.Syndication;
using System.Xml;
using System.IO;
using Xunit;
+using System.Linq;
namespace System.ServiceModel.Syndication.Tests
{
@@ -285,19 +286,126 @@ namespace System.ServiceModel.Syndication.Tests
}
[Fact]
- [ActiveIssue(25156)]
public static void SyndicationFeed_Rss_WrongDateFormat()
{
// *** SETUP *** \\
- Rss20FeedFormatter rssformatter = new Rss20FeedFormatter();
-
XmlReader reader = XmlReader.Create(@"rssSpecExampleWrongDateFormat.xml");
// *** EXECUTE *** \\
SyndicationFeed res = SyndicationFeed.Load(reader);
// *** ASSERT *** \\
- Assert.True(!res.LastUpdatedTime.Equals(new DateTimeOffset()));
+ Assert.True(res != null, "res was null.");
+ Assert.Equal(new DateTimeOffset(2016, 8, 23, 16, 8, 0, new TimeSpan(-4, 0, 0)), res.LastUpdatedTime);
+ Assert.True(res.Items != null, "res.Items was null.");
+ Assert.True(res.Items.Count() == 4, $"res.Items.Count() was not as expected. Expected: 4; Actual: {res.Items.Count()}");
+ SyndicationItem[] items = res.Items.ToArray();
+ DateTimeOffset dateTimeOffset;
+ Assert.Throws<XmlException>(() => dateTimeOffset = items[2].PublishDate);
+ }
+
+ [Fact]
+ public static void SyndicationFeed_Rss_DateTimeParser()
+ {
+ // *** SETUP *** \\
+ // *** EXECUTE *** \\
+ SyndicationFeed feed;
+ DateTimeOffset dto = new DateTimeOffset(2017, 1, 2, 3, 4, 5, new TimeSpan(0));
+ using (XmlReader reader = XmlReader.Create(@"RssSpecCustomParser.xml"))
+ {
+ var formatter = new Rss20FeedFormatter();
+ formatter.DateTimeParser = (value, localName, ns) => dto;
+ formatter.ReadFrom(reader);
+ feed = formatter.Feed;
+ }
+
+ // *** ASSERT *** \\
+ Assert.True(feed != null, "res was null.");
+ Assert.Equal(dto, feed.LastUpdatedTime);
+ }
+
+ [Fact]
+ public static void SyndicationFeed_Rss_UriParser()
+ {
+ // *** SETUP *** \\
+ // *** EXECUTE *** \\
+ SyndicationFeed feed;
+ using (XmlReader reader = XmlReader.Create(@"RssSpecCustomParser.xml"))
+ {
+ var formatter = new Rss20FeedFormatter
+ {
+ UriParser = (value, kind, localName, ns) => new Uri($"http://value-{value}-kind-{kind}-localName-{localName}-ns-{ns}-end")
+ };
+ formatter.ReadFrom(reader);
+ feed = formatter.Feed;
+ }
+
+ // *** ASSERT *** \\
+ Assert.True(feed != null, "res was null.");
+ Assert.Equal(new Uri("http://value-ChannelBase-kind-relativeorabsolute-localName-channel-ns--end"), feed.BaseUri);
+ Assert.Equal(new Uri("http://value-ImageUrl-kind-relativeorabsolute-localName-url-ns--end"), feed.ImageUrl);
+ Assert.NotNull(feed.Links);
+ Assert.Equal(1, feed.Links.Count);
+ Assert.Equal(new Uri("http://value-FeedLink-kind-relativeorabsolute-localName-link-ns--end"), feed.Links.First().Uri);
+
+ Assert.True(feed.Items != null, "res.Items was null.");
+ Assert.Equal(1, feed.Items.Count());
+ Assert.Equal(1, feed.Items.First().Links.Count);
+ Assert.Equal(new Uri("http://value-itemlink-kind-relativeorabsolute-localName-link-ns--end"), feed.Items.First().Links.First().Uri);
+ }
+
+ [Fact]
+ public static void SyndicationFeed_Atom_DateTimeParser()
+ {
+ // *** SETUP *** \\
+ // *** EXECUTE *** \\
+ SyndicationFeed feed;
+ DateTimeOffset dto = new DateTimeOffset(2017, 1, 2, 3, 4, 5, new TimeSpan(0));
+ using (XmlReader reader = XmlReader.Create(@"SimpleAtomFeedCustomParser.xml"))
+ {
+ var formatter = new Atom10FeedFormatter
+ {
+ DateTimeParser = (value, localName, ns) => dto
+ };
+ formatter.ReadFrom(reader);
+ feed = formatter.Feed;
+ }
+
+ // *** ASSERT *** \\
+ Assert.True(feed != null, "res was null.");
+ Assert.Equal(dto, feed.LastUpdatedTime);
+
+ Assert.True(feed.Items != null, "res.Items was null.");
+ Assert.Equal(1, feed.Items.Count());
+ Assert.Equal(dto, feed.Items.First().LastUpdatedTime);
+ }
+
+ [Fact]
+ public static void SyndicationFeed_Atom_UriParser()
+ {
+ // *** SETUP *** \\
+ // *** EXECUTE *** \\
+ SyndicationFeed feed;
+ using (XmlReader reader = XmlReader.Create(@"SimpleAtomFeedCustomParser.xml"))
+ {
+ var formatter = new Atom10FeedFormatter
+ {
+ UriParser = (value, kind, localName, ns) => new Uri($"http://value-{value}-kind-{kind}-localName-{localName}-ns-{ns}-end")
+ };
+ formatter.ReadFrom(reader);
+ feed = formatter.Feed;
+ }
+
+ // *** ASSERT *** \\
+ Assert.True(feed != null, "res was null.");
+ Assert.Equal(new Uri("http://value-FeedLogo-kind-relativeorabsolute-localName-logo-ns-http//www.w3.org/2005/Atom-end"), feed.ImageUrl);
+
+ Assert.True(feed.Items != null, "res.Items was null.");
+ Assert.Equal(1, feed.Items.Count());
+ Assert.NotNull(feed.Items.First().Links);
+ Assert.Equal(1, feed.Items.First().Links.Count);
+ Assert.Equal(new Uri("http://value-EntryLinkHref-kind-relativeorabsolute-localName-link-ns-http//www.w3.org/2005/Atom-end"), feed.Items.First().Links.First().Uri);
+ Assert.Equal(new Uri("http://value-EntryContentSrc-kind-relativeorabsolute-localName-content-ns-http://www.w3.org/2005/Atom-end"), ((UrlSyndicationContent)feed.Items.First().Content).Url);
}
[Fact]