Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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>());
        }
Esempio n. 3
0
        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
            });
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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();
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        private void GivenProfile(Profile profile)
        {
            CustomFormatsFixture.GivenCustomFormats();
            profile.FormatItems        = CustomFormatsFixture.GetSampleFormatItems();
            profile.MinFormatScore     = 0;
            _remoteMovie.Movie.Profile = profile;

            Console.WriteLine(profile.ToJson());
        }
Esempio n. 11
0
        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();
        }
Esempio n. 12
0
        private void GivenCustomFormatHigher()
        {
            _customFormat = new CustomFormats.CustomFormat("My Format", "L_ENGLISH")
            {
                Id = 1
            };

            CustomFormatsFixture.GivenCustomFormats(_customFormat, CustomFormats.CustomFormat.None);
        }
Esempio n. 13
0
        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();
        }
Esempio n. 14
0
        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();
        }
Esempio n. 15
0
        private void GivenCustomFormatHigher()
        {
            _customFormat = new CustomFormat("My Format", new ResolutionSpecification {
                Value = (int)Resolution.R1080p
            })
            {
                Id = 1
            };

            CustomFormatsFixture.GivenCustomFormats(_customFormat);
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        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();
        }
Esempio n. 18
0
        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()
            });
        }
Esempio n. 19
0
        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);
        }
Esempio n. 20
0
        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();
        }
Esempio n. 21
0
        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();
        }
Esempio n. 23
0
        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);
 }