private RemoteMovie GivenRemoteMovie(QualityModel quality, int age = 0, long size = 0, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet) { var remoteMovie = new RemoteMovie(); remoteMovie.ParsedMovieInfo = new ParsedMovieInfo(); remoteMovie.ParsedMovieInfo.MovieTitle = "A Movie"; remoteMovie.ParsedMovieInfo.Year = 1998; remoteMovie.ParsedMovieInfo.Quality = quality; remoteMovie.Movie = Builder <Movie> .CreateNew().With(m => m.Profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(), PreferredTags = new List <string> { "DTS-HD", "SPARKS" }, FormatItems = CustomFormatsFixture.GetSampleFormatItems() }) .With(m => m.Title = "A Movie").Build(); remoteMovie.Release = new ReleaseInfo(); remoteMovie.Release.PublishDate = DateTime.Now.AddDays(-age); remoteMovie.Release.Size = size; remoteMovie.Release.DownloadProtocol = downloadProtocol; remoteMovie.Release.Title = "A Movie 1998"; return(remoteMovie); }
public void Setup() { Mocker.Resolve <UpgradableSpecification>(); CustomFormatsFixture.GivenCustomFormats(); _movie = Builder <Movie> .CreateNew() .With(e => e.Profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(), FormatItems = CustomFormatsFixture.GetSampleFormatItems(), MinFormatScore = 0, UpgradeAllowed = true }) .Build(); _otherMovie = Builder <Movie> .CreateNew() .With(s => s.Id = 2) .Build(); _releaseInfo = Builder <ReleaseInfo> .CreateNew() .Build(); _remoteMovie = Builder <RemoteMovie> .CreateNew() .With(r => r.Movie = _movie) .With(r => r.ParsedMovieInfo = new ParsedMovieInfo { Quality = new QualityModel(Quality.DVD) }) .With(x => x.CustomFormats = new List <CustomFormat>()) .Build(); Mocker.GetMock <ICustomFormatCalculationService>() .Setup(x => x.ParseCustomFormat(It.IsAny <ParsedMovieInfo>())) .Returns(new List <CustomFormat>()); }
public void get_acceptable_languages_should_return_custom_format_positive_languages() { var profile = Builder <Profile> .CreateNew() .With(c => c.Language = Language.German) .Build(); var customFormat1 = new CustomFormat("My Format 1", new LanguageSpecification { Value = (int)Language.English }) { Id = 1 }; var customFormat2 = new CustomFormat("My Format 2", new LanguageSpecification { Value = (int)Language.French }) { Id = 2 }; CustomFormatsFixture.GivenCustomFormats(customFormat1, customFormat2); profile.FormatItems = CustomFormatsFixture.GetSampleFormatItems(customFormat2.Name); Mocker.GetMock <IProfileRepository>() .Setup(s => s.Get(It.IsAny <int>())) .Returns(profile); var languages = Subject.GetAcceptableLanguages(profile.Id); languages.Count.Should().Be(2); languages.Should().Contain(Language.German); languages.Should().Contain(Language.French); }
public void Setup() { GivenPreferredDownloadProtocol(DownloadProtocol.Usenet); _customFormat1 = new CustomFormat("My Format 1", new LanguageSpecification { Value = (int)Language.English }) { Id = 1 }; _customFormat2 = new CustomFormat("My Format 2", new LanguageSpecification { Value = (int)Language.French }) { Id = 2 }; CustomFormatsFixture.GivenCustomFormats(_customFormat1, _customFormat2); Mocker.GetMock <IQualityDefinitionService>() .Setup(s => s.Get(It.IsAny <Quality>())) .Returns(new QualityDefinition { PreferredSize = null }); }
public void Setup() { Mocker.Resolve <UpgradableSpecification>(); _upgradeDisk = Mocker.Resolve <UpgradeDiskSpecification>(); CustomFormatsFixture.GivenCustomFormats(); _firstFile = new MovieFile { Quality = new QualityModel(Quality.Bluray1080p, new Revision(version: 2)), DateAdded = DateTime.Now }; var fakeSeries = Builder <Movie> .CreateNew() .With(c => c.Profile = new Profile { Cutoff = Quality.Bluray1080p.Id, Items = Qualities.QualityFixture.GetDefaultQualities(), FormatItems = CustomFormatsFixture.GetSampleFormatItems(), MinFormatScore = 0 }) .With(e => e.MovieFile = _firstFile) .Build(); _parseResultSingle = new RemoteMovie { Movie = fakeSeries, ParsedMovieInfo = new ParsedMovieInfo() { Quality = new QualityModel(Quality.DVD, new Revision(version: 2)) }, CustomFormats = new List <CustomFormat>() }; Mocker.GetMock <ICustomFormatCalculationService>() .Setup(x => x.ParseCustomFormat(It.IsAny <MovieFile>())) .Returns(new List <CustomFormat>()); }
private RemoteMovie GivenRemoteMovie(QualityModel quality, int age = 0, long size = 0, DownloadProtocol downloadProtocol = DownloadProtocol.Usenet, int runtime = 150, int indexerPriority = 25) { var remoteMovie = new RemoteMovie(); remoteMovie.ParsedMovieInfo = new ParsedMovieInfo(); remoteMovie.ParsedMovieInfo.MovieTitles = new List <string> { "A Movie" }; remoteMovie.ParsedMovieInfo.Year = 1998; remoteMovie.ParsedMovieInfo.Quality = quality; remoteMovie.Movie = Builder <Movie> .CreateNew().With(m => m.Profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(), FormatItems = CustomFormatsFixture.GetSampleFormatItems(_customFormat1.Name, _customFormat2.Name), MinFormatScore = 0 }) .With(m => m.Title = "A Movie") .With(m => m.Runtime = runtime).Build(); remoteMovie.Release = new ReleaseInfo(); remoteMovie.Release.PublishDate = DateTime.Now.AddDays(-age); remoteMovie.Release.Size = size; remoteMovie.Release.DownloadProtocol = downloadProtocol; remoteMovie.Release.Title = "A Movie 1998"; remoteMovie.Release.IndexerPriority = indexerPriority; remoteMovie.CustomFormats = new List <CustomFormat>(); remoteMovie.CustomFormatScore = 0; return(remoteMovie); }
public void Setup() { _format1 = new CustomFormat("Awesome Format"); _format1.Id = 1; _format2 = new CustomFormat("Cool Format"); _format2.Id = 2; var fakeSeries = Builder <Movie> .CreateNew() .With(c => c.Profile = new Profile { Cutoff = Quality.Bluray1080p.Id, MinFormatScore = 1 }) .Build(); _remoteMovie = new RemoteMovie { Movie = fakeSeries, ParsedMovieInfo = new ParsedMovieInfo { Quality = new QualityModel(Quality.DVD, new Revision(version: 2)) }, }; CustomFormatsFixture.GivenCustomFormats(_format1, _format2); }
public void should_deny_if_no_format_was_parsed_and_none_not_in_profile() { remoteMovie.ParsedMovieInfo.Quality.CustomFormats = new List <CustomFormats.CustomFormat> { }; remoteMovie.Movie.Profile.Value.FormatItems = CustomFormatsFixture.GetSampleFormatItems(_format1.Name, _format2.Name); Subject.IsSatisfiedBy(remoteMovie, null).Accepted.Should().BeFalse(); }
public void should_deny_if_no_format_was_parsed_and_min_score_positive() { _remoteMovie.CustomFormats = new List <CustomFormat> { }; _remoteMovie.Movie.Profile.FormatItems = CustomFormatsFixture.GetSampleFormatItems(_format1.Name, _format2.Name); _remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats); Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse(); }
private void GivenProfile(Profile profile) { CustomFormatsFixture.GivenCustomFormats(); profile.FormatItems = CustomFormatsFixture.GetSampleFormatItems(); profile.MinFormatScore = 0; _remoteMovie.Movie.Profile = profile; Console.WriteLine(profile.ToJson()); }
public void should_allow_if_all_format_is_defined_in_profile() { remoteMovie.ParsedMovieInfo.Quality.CustomFormats = new List <CustomFormats.CustomFormat> { _format2, _format1 }; remoteMovie.Movie.Profile.Value.FormatItems = CustomFormatsFixture.GetSampleFormatItems(_format1.Name, _format2.Name); Subject.IsSatisfiedBy(remoteMovie, null).Accepted.Should().BeTrue(); }
private void GivenCustomFormatHigher() { _customFormat = new CustomFormats.CustomFormat("My Format", "L_ENGLISH") { Id = 1 }; CustomFormatsFixture.GivenCustomFormats(_customFormat, CustomFormats.CustomFormat.None); }
public void should_deny_if_format_score_not_greater_than_min_2() { _remoteMovie.CustomFormats = new List <CustomFormat> { _format2, _format1 }; _remoteMovie.Movie.Profile.FormatItems = CustomFormatsFixture.GetSampleFormatItems(_format1.Name); _remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats); Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse(); }
public void should_allow_if_all_format_is_defined_in_profile() { _remoteMovie.CustomFormats = new List <CustomFormat> { _format2, _format1 }; _remoteMovie.Movie.Profile.FormatItems = CustomFormatsFixture.GetSampleFormatItems(_format1.Name, _format2.Name); _remoteMovie.CustomFormatScore = _remoteMovie.Movie.Profile.CalculateCustomFormatScore(_remoteMovie.CustomFormats); Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue(); }
private void GivenCustomFormatHigher() { _customFormat = new CustomFormat("My Format", new ResolutionSpecification { Value = (int)Resolution.R1080p }) { Id = 1 }; CustomFormatsFixture.GivenCustomFormats(_customFormat); }
public void Setup() { GivenPreferredDownloadProtocol(DownloadProtocol.Usenet); _customFormat1 = new CustomFormats.CustomFormat("My Format 1", "L_ENGLISH") { Id = 1 }; _customFormat2 = new CustomFormats.CustomFormat("My Format 2", "L_FRENCH") { Id = 2 }; CustomFormatsFixture.GivenCustomFormats(CustomFormats.CustomFormat.None, _customFormat1, _customFormat2); }
public void should_not_be_upgradable_if_cutoff_already_met() { _fakeMovie.Profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(), Cutoff = Quality.WEBDL1080p.Id, FormatItems = CustomFormatsFixture.GetSampleFormatItems(), MinFormatScore = 0 }; _parseResultSingle.ParsedMovieInfo.Quality = new QualityModel(Quality.WEBDL1080p, new Revision(version: 1)); _upgradableQuality = new QualityModel(Quality.Bluray1080p, new Revision(version: 1)); GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, MovieHistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); }
private void GivenDefaultProfileWithFormats() { _customFormat1 = new CustomFormats.CustomFormat("My Format 1", "L_ENGLISH") { Id = 1 }; _customFormat2 = new CustomFormats.CustomFormat("My Format 2", "L_FRENCH") { Id = 2 }; CustomFormatsFixture.GivenCustomFormats(CustomFormats.CustomFormat.None, _customFormat1, _customFormat2); Subject = new QualityModelComparer(new Profile { Items = QualityFixture.GetDefaultQualities(), FormatItems = CustomFormatsFixture.GetSampleFormatItems() }); }
public void should_be_able_to_read_and_write() { var profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(Quality.Bluray1080p, Quality.DVD, Quality.HDTV720p), MinFormatScore = 0, FormatItems = CustomFormatsFixture.GetDefaultFormatItems(), Cutoff = Quality.Bluray1080p.Id, Name = "TestProfile" }; Subject.Insert(profile); StoredModel.Name.Should().Be(profile.Name); StoredModel.Cutoff.Should().Be(profile.Cutoff); StoredModel.Items.Should().Equal(profile.Items, (a, b) => a.Quality == b.Quality && a.Allowed == b.Allowed); }
public void should_not_be_upgradable_if_episode_is_of_same_quality_as_existing() { _fakeMovie.Profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(), Cutoff = Quality.Bluray1080p.Id, FormatItems = CustomFormatsFixture.GetSampleFormatItems(), MinFormatScore = 0 }; _parseResultSingle.ParsedMovieInfo.Quality = new QualityModel(Quality.WEBDL1080p, new Revision(version: 1)); _upgradableQuality = new QualityModel(Quality.WEBDL1080p, new Revision(version: 1)); Mocker.GetMock <ICustomFormatCalculationService>() .Setup(x => x.ParseCustomFormat(It.IsAny <MovieHistory>())) .Returns(new List <CustomFormat>()); GivenMostRecentForEpisode(FIRST_EPISODE_ID, string.Empty, _upgradableQuality, DateTime.UtcNow, MovieHistoryEventType.Grabbed); _upgradeHistory.IsSatisfiedBy(_parseResultSingle, null).Accepted.Should().BeFalse(); }
public void should_load_quality_profile() { var profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(Quality.Bluray1080p, Quality.DVD, Quality.HDTV720p), FormatItems = CustomFormatsFixture.GetDefaultFormatItems(), MinFormatScore = 0, Cutoff = Quality.Bluray1080p.Id, Name = "TestProfile" }; _profileRepository.Insert(profile); var movie = Builder <Movie> .CreateNew().BuildNew(); movie.ProfileId = profile.Id; Subject.Insert(movie); Subject.All().Single().Profile.Should().NotBeNull(); }
public void should_return_false_if_custom_formats_is_met_and_quality_and_format_higher() { GivenProfile(new Profile { Cutoff = Quality.HDTV720p.Id, Items = Qualities.QualityFixture.GetDefaultQualities(), MinFormatScore = 0, FormatItems = CustomFormatsFixture.GetSampleFormatItems("My Format") }); GivenFileQuality(new QualityModel(Quality.HDTV720p)); GivenNewQuality(new QualityModel(Quality.Bluray1080p)); GivenCustomFormatHigher(); GivenOldCustomFormats(new List <CustomFormat>()); GivenNewCustomFormats(new List <CustomFormat> { _customFormat }); Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeFalse(); }
public void should_return_false_if_custom_formats_is_met_and_quality_and_format_higher() { GivenCustomFormatHigher(); var old = new QualityModel(Quality.HDTV720p); old.CustomFormats = new List <CustomFormats.CustomFormat> { CustomFormats.CustomFormat.None }; var newQ = new QualityModel(Quality.Bluray1080p); newQ.CustomFormats = new List <CustomFormats.CustomFormat> { _customFormat }; Subject.CutoffNotMet( new Profile { Cutoff = Quality.HDTV720p, Items = Qualities.QualityFixture.GetDefaultQualities(), FormatCutoff = CustomFormats.CustomFormat.None, FormatItems = CustomFormatsFixture.GetSampleFormatItems("None", "My Format") }, old, newQ).Should().BeFalse(); }
public void Setup() { Mocker.Resolve <UpgradableSpecification>(); _upgradeHistory = Mocker.Resolve <HistorySpecification>(); CustomFormatsFixture.GivenCustomFormats(); _fakeMovie = Builder <Movie> .CreateNew() .With(c => c.Profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(), Cutoff = Quality.Bluray1080p.Id, FormatItems = CustomFormatsFixture.GetSampleFormatItems("None"), MinFormatScore = 0, UpgradeAllowed = true }) .Build(); _parseResultSingle = new RemoteMovie { Movie = _fakeMovie, ParsedMovieInfo = new ParsedMovieInfo { Quality = new QualityModel(Quality.DVD, new Revision(version: 2)) }, CustomFormats = new List <CustomFormat>() }; _upgradableQuality = new QualityModel(Quality.SDTV, new Revision(version: 1)); _notupgradableQuality = new QualityModel(Quality.HDTV1080p, new Revision(version: 2)); Mocker.GetMock <IConfigService>() .SetupGet(s => s.EnableCompletedDownloadHandling) .Returns(true); Mocker.GetMock <ICustomFormatCalculationService>() .Setup(x => x.ParseCustomFormat(It.IsAny <MovieHistory>())) .Returns(new List <CustomFormat>()); }
public void IsUpgradeTest(Quality current, int currentVersion, List <CustomFormat> currentFormats, Quality newQuality, int newVersion, List <CustomFormat> newFormats, bool expected) { GivenAutoDownloadPropers(ProperDownloadTypes.PreferAndUpgrade); var profile = new Profile { Items = Qualities.QualityFixture.GetDefaultQualities(), FormatItems = CustomFormatsFixture.GetSampleFormatItems(_customFormat1.Name, _customFormat2.Name), MinFormatScore = 0 }; Subject.IsUpgradable(profile, new QualityModel(current, new Revision(version: currentVersion)), currentFormats, new QualityModel(newQuality, new Revision(version: newVersion)), newFormats) .Should().Be(expected); }
public void Setup() { CustomFormatsFixture.GivenCustomFormats(_customFormat1, _customFormat2); }