mirror of
https://github.com/Sonarr/Sonarr.git
synced 2024-12-16 11:37:58 +02:00
4c1e6e14aa
Upgraded episodes will no longer be auto unmonitored EpsiodeFiles will be removed from db if parsing rules have changed EpisodeFiles will be removed from db if they are not in their series' folder (or subfolder)
137 lines
6.9 KiB
C#
137 lines
6.9 KiB
C#
using System.Linq;
|
|
using FizzWare.NBuilder;
|
|
using FluentAssertions;
|
|
using Marr.Data;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using NzbDrone.Core.MediaFiles;
|
|
using NzbDrone.Core.MediaFiles.EpisodeImport.Specifications;
|
|
using NzbDrone.Core.Parser.Model;
|
|
using NzbDrone.Core.Test.Framework;
|
|
using NzbDrone.Core.Tv;
|
|
|
|
namespace NzbDrone.Core.Test.MediaFileTests.EpisodeImportTests
|
|
{
|
|
[TestFixture]
|
|
public class NotExistingFileSpecificationFixture : CoreTest<NotExistingFileSpecification>
|
|
{
|
|
private LocalEpisode _localEpisode;
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
_localEpisode = new LocalEpisode
|
|
{
|
|
Path = @"C:\Test\30 Rock\30.rock.s01e01.avi",
|
|
Size = 100
|
|
};
|
|
}
|
|
|
|
[Test]
|
|
public void should_return_false_if_path_and_size_are_the_same()
|
|
{
|
|
_localEpisode.Episodes = Builder<Episode>.CreateListOfSize(1)
|
|
.All()
|
|
.With(e => e.EpisodeFileId = 1)
|
|
.With(e => e.EpisodeFile = new LazyLoaded<EpisodeFile>(
|
|
new EpisodeFile
|
|
{
|
|
Path = @"C:\Test\30 Rock\30.rock.s01e01.avi",
|
|
Size = 100
|
|
}))
|
|
.Build()
|
|
.ToList();
|
|
|
|
Subject.IsSatisfiedBy(_localEpisode).Should().BeFalse();
|
|
}
|
|
|
|
[Test]
|
|
public void should_return_false_if_filename_and_size_are_the_same()
|
|
{
|
|
_localEpisode.Episodes = Builder<Episode>.CreateListOfSize(1)
|
|
.All()
|
|
.With(e => e.EpisodeFileId = 1)
|
|
.With(e => e.EpisodeFile = new LazyLoaded<EpisodeFile>(
|
|
new EpisodeFile
|
|
{
|
|
Path = @"C:\Test\30 Rock\Season 01\30.rock.s01e01.avi",
|
|
Size = 100
|
|
}))
|
|
.Build()
|
|
.ToList();
|
|
|
|
Subject.IsSatisfiedBy(_localEpisode).Should().BeFalse();
|
|
}
|
|
|
|
[Test]
|
|
public void should_return_true_if_no_existing_file()
|
|
{
|
|
_localEpisode.Episodes = Builder<Episode>.CreateListOfSize(1)
|
|
.All()
|
|
.With(e => e.EpisodeFileId = 0)
|
|
.Build()
|
|
.ToList();
|
|
|
|
Subject.IsSatisfiedBy(_localEpisode).Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void should_return_true_if_size_is_different()
|
|
{
|
|
_localEpisode.Episodes = Builder<Episode>.CreateListOfSize(1)
|
|
.All()
|
|
.With(e => e.EpisodeFileId = 1)
|
|
.With(e => e.EpisodeFile = new LazyLoaded<EpisodeFile>(
|
|
new EpisodeFile
|
|
{
|
|
Path = @"C:\Test\30 Rock\Season 01\30.rock.s01e01.avi",
|
|
Size = 50
|
|
}))
|
|
.Build()
|
|
.ToList();
|
|
|
|
Subject.IsSatisfiedBy(_localEpisode).Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void should_return_true_if_file_names_are_different()
|
|
{
|
|
_localEpisode.Episodes = Builder<Episode>.CreateListOfSize(1)
|
|
.All()
|
|
.With(e => e.EpisodeFileId = 1)
|
|
.With(e => e.EpisodeFile = new LazyLoaded<EpisodeFile>(
|
|
new EpisodeFile
|
|
{
|
|
Path = @"C:\Test\30 Rock\Season 01\30.rock.s01e01.pilot.avi",
|
|
Size = 100
|
|
}))
|
|
.Build()
|
|
.ToList();
|
|
|
|
Subject.IsSatisfiedBy(_localEpisode).Should().BeTrue();
|
|
}
|
|
|
|
[Test]
|
|
public void should_return_false_if_exact_path_exists_in_db()
|
|
{
|
|
Mocker.GetMock<IMediaFileService>()
|
|
.Setup(s => s.Exists(It.IsAny<string>()))
|
|
.Returns(true);
|
|
|
|
_localEpisode.Episodes = Builder<Episode>.CreateListOfSize(1)
|
|
.All()
|
|
.With(e => e.EpisodeFileId = 1)
|
|
.With(e => e.EpisodeFile = new LazyLoaded<EpisodeFile>(
|
|
new EpisodeFile
|
|
{
|
|
Path = @"C:\Test\30 Rock\Season 01\30.rock.s01e01.pilot.avi",
|
|
Size = 100
|
|
}))
|
|
.Build()
|
|
.ToList();
|
|
|
|
Subject.IsSatisfiedBy(_localEpisode).Should().BeFalse();
|
|
}
|
|
}
|
|
}
|