using System.Collections.Generic; using System.Linq; using FizzWare.NBuilder; using Moq; using NUnit.Framework; using NzbDrone.Core.MediaFiles; using NzbDrone.Core.Music; using NzbDrone.Core.Notifications; using NzbDrone.Core.Notifications.Xbmc; using NzbDrone.Core.Test.Framework; namespace NzbDrone.Core.Test.NotificationTests.Xbmc { [TestFixture] public class OnReleaseImportFixture : CoreTest { private AlbumDownloadMessage _albumDownloadMessage; [SetUp] public void Setup() { var artist = Builder.CreateNew() .Build(); var trackFile = Builder.CreateNew() .Build(); _albumDownloadMessage = Builder.CreateNew() .With(d => d.Artist = artist) .With(d => d.TrackFiles = new List { trackFile }) .With(d => d.OldFiles = new List()) .Build(); Subject.Definition = new NotificationDefinition(); Subject.Definition.Settings = new XbmcSettings { UpdateLibrary = true }; } private void GivenOldFiles() { _albumDownloadMessage.OldFiles = Builder.CreateListOfSize(1) .Build() .ToList(); Subject.Definition.Settings = new XbmcSettings { UpdateLibrary = true, CleanLibrary = true }; } [Test] public void should_not_clean_if_no_episode_was_replaced() { Subject.OnReleaseImport(_albumDownloadMessage); Mocker.GetMock().Verify(v => v.Clean(It.IsAny()), Times.Never()); } [Test] public void should_clean_if_episode_was_replaced() { GivenOldFiles(); Subject.OnReleaseImport(_albumDownloadMessage); Mocker.GetMock().Verify(v => v.Clean(It.IsAny()), Times.Once()); } } }