using System; using FluentAssertions; using Moq; using NUnit.Framework; using NzbDrone.Common; using NzbDrone.Core.Providers; using NzbDrone.Core.Providers.Core; using NzbDrone.Core.Test.Framework; using NzbDrone.Test.Common.AutoMoq; namespace NzbDrone.Core.Test.ProviderTests.UpdateProviderTests { class GetAvilableUpdateFixture : CoreTest { private static Version _latestsTestVersion = new Version("0.6.0.3"); private static string _latestsTestUrl = "http://update.nzbdrone.com/_test/NzbDrone.master.0.6.0.3.zip"; private static string _latestsTestFileName = "NzbDrone.master.0.6.0.3.zip"; [SetUp] public void Setup() { WithStrictMocker(); Mocker.GetMock().SetupGet(c => c.UpdateUrl).Returns("http://update.nzbdrone.com/_test/"); Mocker.Resolve(); } [TestCase("0.6.0.9")] [TestCase("0.7.0.1")] [TestCase("1.0.0.0")] public void should_return_null_if_latests_is_lower_than_current_version(string currentVersion) { var updatePackage = Mocker.Resolve().GetAvilableUpdate(new Version(currentVersion)); updatePackage.Should().BeNull(); } [Test] public void should_return_null_if_latests_is_equal_to_current_version() { var updatePackage = Mocker.Resolve().GetAvilableUpdate(_latestsTestVersion); updatePackage.Should().BeNull(); } [TestCase("0.0.0.0")] [TestCase("0.0.0.1")] [TestCase("0.0.10.10")] public void should_return_update_if_latests_is_higher_than_current_version(string currentVersion) { var updatePackage = Mocker.Resolve().GetAvilableUpdate(new Version(currentVersion)); updatePackage.Should().NotBeNull(); updatePackage.Version.Should().Be(_latestsTestVersion); updatePackage.FileName.Should().BeEquivalentTo(_latestsTestFileName); updatePackage.Url.Should().BeEquivalentTo(_latestsTestUrl); } } }