diff --git a/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/JsonConvertersTests/SabnzbdQueueTimeConverterFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/JsonConvertersTests/SabnzbdQueueTimeConverterFixture.cs index 229e3a8b6..b7241c479 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/JsonConvertersTests/SabnzbdQueueTimeConverterFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadClientTests/SabnzbdTests/JsonConvertersTests/SabnzbdQueueTimeConverterFixture.cs @@ -12,32 +12,35 @@ namespace NzbDrone.Core.Test.Download.DownloadClientTests.SabnzbdTests.JsonConve [TestFixture] public class SabnzbdQueueTimeConverterFixture { - private const string QUERY = - "{0} status : 'Downloading', mb : 1000, filename : 'Droned.S01E01.Pilot.1080p.WEB-DL-DRONE', priority : 0, cat : 'tv', mbleft : 10, percentage : 90, nzo_id : 'sabnzbd_nzb12345', timeleft : '{1}' {2}"; + private const string QUERY = "{{ timeleft : '{0}' }}"; - [TestCase("0:0:1")] - [TestCase("0:0:0:1")] - public void valid_time_formats_should_be_parsed_correctly(string time) + [TestCase("0:0:0", 0)] + [TestCase("0:1:59", 119)] + [TestCase("0:59:59", 3599)] + [TestCase("1:0:0", 3600)] + [TestCase("1:0:0:1", 24 * 3600 + 1)] + [TestCase("40:12:14", 40 * 3600 + 12 * 60 + 14)] + [TestCase("1:16:12:14", 40 * 3600 + 12 * 60 + 14)] + public void valid_time_formats_should_be_parsed_correctly(string time, int expectedSeconds) { - var thing = string.Format(QUERY, "{", time, "}"); + var thing = string.Format(QUERY, time); var item = JsonConvert.DeserializeObject(thing); - item.Timeleft.Should().Be(new TimeSpan(0, 0, 1)); + item.Timeleft.Should().Be(TimeSpan.FromSeconds(expectedSeconds)); } - [TestCase("0:1")] [TestCase("1")] + [TestCase("0:1")] [TestCase("0:0:0:0:1")] public void invalid_time_formats_should_throw_an_exception(string time) { - var thing = string.Format(QUERY, "{", time, "}"); + var thing = string.Format(QUERY, time); Assert.That(() => JsonConvert.DeserializeObject(thing), Throws.TypeOf()); } - [TestCase("40:12:14")] - [TestCase("1:16:12:14")] - public void valid_time_formats_of_equal_value_should_be_parsed_the_same(string time) + [Test] + public void should_support_pre_1_1_0rc4_format() { - var thing = string.Format(QUERY, "{", time, "}"); + var thing = string.Format(QUERY, "40:12:14"); var item = JsonConvert.DeserializeObject(thing); item.Timeleft.Should().Be(new TimeSpan(40, 12, 14)); } diff --git a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj index 26ae602a3..2f96f5d05 100644 --- a/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/NzbDrone.Core.Test.csproj @@ -171,6 +171,7 @@ +