From b9e3d1a92150fb5b8559aa2dd5b86bf942f8bda9 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Thu, 19 Apr 2012 00:41:34 -0700 Subject: [PATCH] Added a test to confirm that dateTime is parsed properly when using other cultures. --- NzbDrone.Core.Test/IndexerTests.cs | 35 +++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/NzbDrone.Core.Test/IndexerTests.cs b/NzbDrone.Core.Test/IndexerTests.cs index 1753b221d..417eaa5a8 100644 --- a/NzbDrone.Core.Test/IndexerTests.cs +++ b/NzbDrone.Core.Test/IndexerTests.cs @@ -1,9 +1,10 @@ using System; +using System.Globalization; using System.IO; using System.Linq; using System.Net; using System.ServiceModel.Syndication; - +using System.Threading; using FizzWare.NBuilder; using FluentAssertions; using Moq; @@ -530,5 +531,37 @@ namespace NzbDrone.Core.Test parseResults.Should().HaveCount(1); parseResults[0].CleanTitle.Should().Be("britainsgottalent"); } + + [TestCase("wombles.xml", "de-de")] + public void dateTime_should_parse_when_using_other_cultures(string fileName, string culture) + { + var currentCulture = Thread.CurrentThread.CurrentCulture; + Thread.CurrentThread.CurrentCulture = new CultureInfo(culture); + + Mocker.GetMock() + .Setup(h => h.DownloadStream(It.IsAny(), It.IsAny())) + .Returns(File.OpenRead(".\\Files\\Rss\\" + fileName)); + + var fakeSettings = Builder.CreateNew().Build(); + Mocker.GetMock() + .Setup(c => c.GetSettings(It.IsAny())) + .Returns(fakeSettings); + + var mockIndexer = Mocker.Resolve(); + var parseResults = mockIndexer.FetchRss(); + + foreach (var episodeParseResult in parseResults) + { + var Uri = new Uri(episodeParseResult.NzbUrl); + Uri.PathAndQuery.Should().NotContain("//"); + } + + parseResults.Should().NotBeEmpty(); + parseResults.Should().OnlyContain(s => s.Indexer == mockIndexer.Name); + parseResults.Should().OnlyContain(s => !String.IsNullOrEmpty(s.OriginalString)); + parseResults.Should().OnlyContain(s => s.Age >= 0); + + Thread.CurrentThread.CurrentCulture = currentCulture; + } } }