2011-10-21 07:04:26 +02:00
|
|
|
|
using System;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using AutoMoq;
|
|
|
|
|
using FluentAssertions;
|
|
|
|
|
using Moq;
|
|
|
|
|
using NUnit.Framework;
|
2011-10-29 06:54:33 +02:00
|
|
|
|
using NzbDrone.Common;
|
2011-10-21 07:04:26 +02:00
|
|
|
|
using NzbDrone.Core.Model;
|
|
|
|
|
using NzbDrone.Core.Providers;
|
|
|
|
|
using NzbDrone.Core.Providers.Core;
|
|
|
|
|
using NzbDrone.Core.Test.Framework;
|
2011-10-29 06:54:33 +02:00
|
|
|
|
using DiskProvider = NzbDrone.Core.Providers.Core.DiskProvider;
|
2011-10-21 07:04:26 +02:00
|
|
|
|
|
|
|
|
|
namespace NzbDrone.Core.Test.ProviderTests.UpdateProviderTests
|
|
|
|
|
{
|
|
|
|
|
[TestFixture]
|
|
|
|
|
internal class PreformUpdateFixture : TestBase
|
|
|
|
|
{
|
|
|
|
|
private AutoMoqer _mocker = null;
|
|
|
|
|
|
|
|
|
|
[SetUp]
|
|
|
|
|
public void setup()
|
|
|
|
|
{
|
|
|
|
|
_mocker = new AutoMoqer(MockBehavior.Strict);
|
2011-11-03 06:04:14 +01:00
|
|
|
|
_mocker.GetMock<PathProvider>()
|
|
|
|
|
.SetupGet(c => c.SystemTemp).Returns(TempFolder);
|
2011-10-21 07:04:26 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Test]
|
2011-10-21 08:58:23 +02:00
|
|
|
|
public void Should_call_download_and_extract_using_correct_arguments()
|
2011-10-21 07:04:26 +02:00
|
|
|
|
{
|
|
|
|
|
//Act
|
|
|
|
|
var updatePackage = new UpdatePackage
|
|
|
|
|
{
|
|
|
|
|
FileName = "NzbDrone.kay.one.0.6.0.2031.zip",
|
|
|
|
|
Url = "http://update.nzbdrone.com/kayone/NzbDrone.kay.one.0.6.0.2031.zip",
|
|
|
|
|
Version = new Version("0.6.0.2031")
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
_mocker.GetMock<HttpProvider>().Setup(
|
2011-11-03 06:04:14 +01:00
|
|
|
|
c => c.DownloadFile(updatePackage.Url, Path.Combine(TempFolder, PathProvider.UPDATE_SANDBOX_FOLDER_NAME, updatePackage.FileName)));
|
2011-10-21 08:58:23 +02:00
|
|
|
|
|
|
|
|
|
_mocker.GetMock<DiskProvider>().Setup(
|
2011-11-03 06:04:14 +01:00
|
|
|
|
c => c.ExtractArchive(Path.Combine(TempFolder, PathProvider.UPDATE_SANDBOX_FOLDER_NAME, updatePackage.FileName),
|
|
|
|
|
Path.Combine(TempFolder, PathProvider.UPDATE_SANDBOX_FOLDER_NAME)));
|
2011-10-21 07:04:26 +02:00
|
|
|
|
|
|
|
|
|
_mocker.Resolve<UpdateProvider>().PreformUpdate(updatePackage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void Should_download_and_extract_to_temp_folder()
|
|
|
|
|
{
|
|
|
|
|
|
2011-11-03 06:04:14 +01:00
|
|
|
|
var updateSubFolder = new DirectoryInfo(Path.Combine(TempFolder, PathProvider.UPDATE_SANDBOX_FOLDER_NAME));
|
2011-10-21 07:04:26 +02:00
|
|
|
|
|
|
|
|
|
var updatePackage = new UpdatePackage
|
|
|
|
|
{
|
|
|
|
|
FileName = "NzbDrone.kay.one.0.6.0.2031.zip",
|
|
|
|
|
Url = "http://update.nzbdrone.com/_test/NzbDrone.zip",
|
|
|
|
|
Version = new Version("0.6.0.2031")
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//Act
|
|
|
|
|
updateSubFolder.Exists.Should().BeFalse();
|
|
|
|
|
|
|
|
|
|
_mocker.Resolve<HttpProvider>();
|
|
|
|
|
_mocker.Resolve<DiskProvider>();
|
|
|
|
|
_mocker.Resolve<UpdateProvider>().PreformUpdate(updatePackage);
|
|
|
|
|
updateSubFolder.Refresh();
|
|
|
|
|
//Assert
|
|
|
|
|
|
|
|
|
|
updateSubFolder.Exists.Should().BeTrue();
|
|
|
|
|
updateSubFolder.GetDirectories("nzbdrone").Should().HaveCount(1);
|
|
|
|
|
updateSubFolder.GetDirectories().Should().HaveCount(1);
|
|
|
|
|
updateSubFolder.GetFiles().Should().HaveCount(1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|