using System; using System.Collections.Generic; using System.Linq; using System.Text; using Moq; using NUnit.Framework; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Notifications; using NzbDrone.Core.Notifications.Synology; using NzbDrone.Core.Test.Framework; using NzbDrone.Core.Tv; using NzbDrone.Test.Common; namespace NzbDrone.Core.Test.NotificationTests { [TestFixture] public class SynologyIndexerFixture : CoreTest { private Series _series; private DownloadMessage _upgrade; [SetUp] public void SetUp() { _series = new Series() { Path = @"C:\Test\".AsOsAgnostic() }; _upgrade = new DownloadMessage() { Series = _series, EpisodeFile = new EpisodeFile { RelativePath = "file1.S01E01E02.mkv" }, OldFiles = new List { new EpisodeFile { RelativePath = "file1.S01E01.mkv" }, new EpisodeFile { RelativePath = "file1.S01E02.mkv" } } }; Subject.Definition = new NotificationDefinition { Settings = new SynologyIndexerSettings { UpdateLibrary = true } }; } [Test] public void should_not_update_library_if_disabled() { (Subject.Definition.Settings as SynologyIndexerSettings).UpdateLibrary = false; Subject.AfterRename(_series); Mocker.GetMock() .Verify(v => v.UpdateFolder(_series.Path), Times.Never()); } [Test] public void should_remove_old_episodes_on_upgrade() { Subject.OnDownload(_upgrade); Mocker.GetMock() .Verify(v => v.DeleteFile(@"C:\Test\file1.S01E01.mkv".AsOsAgnostic()), Times.Once()); Mocker.GetMock() .Verify(v => v.DeleteFile(@"C:\Test\file1.S01E02.mkv".AsOsAgnostic()), Times.Once()); } [Test] public void should_add_new_episode_on_upgrade() { Subject.OnDownload(_upgrade); Mocker.GetMock() .Verify(v => v.AddFile(@"C:\Test\file1.S01E01E02.mkv".AsOsAgnostic()), Times.Once()); } [Test] public void should_update_entire_series_folder_on_rename() { Subject.AfterRename(_series); Mocker.GetMock() .Verify(v => v.UpdateFolder(@"C:\Test\".AsOsAgnostic()), Times.Once()); } } }