Exemplo n.º 1
0
        public void WhenGettingFileDetails_WithInvalidFile_ItShouldReturnAnException()
        {
            var service = new KodiService();

            Assert.That(() => service.GetFileDetails(new GetFileDetailsParams {
                File = "invalid path"
            }), Throws.Exception.TypeOf <Exception>());
        }
Exemplo n.º 2
0
        public void WhenGettingDirectory_WithInvalidDirectory_ItShouldReturnAnException()
        {
            var service = new KodiService();

            Assert.That(() => service.GetDirectory(new GetDirectoryParams {
                Directory = "invalid path"
            }), Throws.Exception.TypeOf <Exception>());
        }
Exemplo n.º 3
0
        public void WhenPreparingDownload_WithInvalidPath_ItShouldReturnAnException()
        {
            var service = new KodiService();

            Assert.That(() => service.PrepareDownload(new PrepareDownloadParams {
                Path = "Invalid path"
            }), Throws.Exception.TypeOf <Exception>());
        }
Exemplo n.º 4
0
        public MainPage()
        {
            this.InitializeComponent();

            var Service     = new KodiService();
            var movieParams = new GetMoviesParams()
            {
                Properties = MovieProperties.All()
            };
            var movies = Service.GetMovies(movieParams);

            for (int i = 0; i < 50; i++)
            {
                var row = movies.Result.Movies[i];

                ListViewItem item = new ListViewItem();
                item.Content = new Grid();
                Grid grid = (Grid)item.Content;
                grid.Height = 100;
                grid.Margin = new Thickness(0, 0, 0, 0);

                ColumnDefinition col1 = new ColumnDefinition();
                ColumnDefinition col2 = new ColumnDefinition();
                col1.Width = new GridLength(0, GridUnitType.Auto);
                col2.Width = new GridLength(1, GridUnitType.Star);
                grid.ColumnDefinitions.Add(col1);
                grid.ColumnDefinitions.Add(col2);

                Image       image       = new Image();
                BitmapImage bitmap      = new BitmapImage();
                string      uriUnescape = Uri.UnescapeDataString(row.Art.Poster).ToString();
                bitmap.UriSource = new Uri(uriUnescape.Substring(8, uriUnescape.Length - 9));
                image.Source     = bitmap;
                image.Margin     = new Thickness(0, 0, 5, 0);

                RichTextBlock richTextBlock = new RichTextBlock();
                richTextBlock.TextWrapping = TextWrapping.Wrap;
                Paragraph paragraph1 = new Paragraph();
                Paragraph paragraph2 = new Paragraph();
                Run       title      = new Run();
                Run       plot       = new Run();
                title.Text       = $"{row.Title} ({row.Year})";
                title.FontWeight = FontWeights.Bold;
                plot.Text        = row.Plot;
                paragraph1.Inlines.Add(title);
                paragraph2.Inlines.Add(plot);
                richTextBlock.Blocks.Add(paragraph1);
                richTextBlock.Blocks.Add(paragraph2);

                grid.Children.Add(image);
                grid.Children.Add(richTextBlock);

                Grid.SetColumn(image, 0);
                Grid.SetColumn(richTextBlock, 1);

                MediaList.Items.Add(item);
            }
        }
Exemplo n.º 5
0
        public void WhenPingingKodi_ItShouldReturnAStringResult()
        {
            var service = new KodiService();
            var ping    = service.Ping();

            Assert.IsNotNull(ping);
            StringAssert.IsMatch(ping.Result, "pong");
            Assert.IsInstanceOf <JsonRpcResponse <string> >(ping);
        }
Exemplo n.º 6
0
        public void WhenScanningKodi_ItShouldReturnAStringResult()
        {
            var service = new KodiService();
            var scan    = service.Scan(new ScanParams());

            Assert.IsNotNull(scan);
            StringAssert.IsMatch(scan.Result, "OK");
            Assert.IsInstanceOf <JsonRpcResponse <string> >(scan);
        }
Exemplo n.º 7
0
        public void WhenGettingMovieDetails_WithAnInvalidMovieId_ItShouldThrowException()
        {
            var service = new KodiService();

            var parameters = new GetMovieDetailsParams
            {
                MovieId = (int)Movies.TestSet.InvalidId
            };

            Assert.That(() => service.GetMovieDetails(parameters, "UnitTests"), Throws.Exception.TypeOf <Exception>());
        }
Exemplo n.º 8
0
        public DisplayView()
        {
            this.InitializeComponent();

            var Service     = new KodiService();
            var movieParams = new GetMoviesParams()
            {
                Properties = MovieProperties.All()
            };
            var movies = Service.GetMovies(movieParams);
        }
Exemplo n.º 9
0
        public void WhenPreparingDownload_WithValidPath_ItShouldReturnAString()
        {
            var service         = new KodiService();
            var prepareDownload = service.PrepareDownload(new PrepareDownloadParams {
                Path = "image://http%3A%2F%2Fthetvdb.com%2Fbanners%2Ffanart%2Foriginal%2F295647-11.jpg/"
            });

            Assert.IsNotNull(prepareDownload);
            Assert.IsInstanceOf <JsonRpcResponse <PrepareDownloadResponse> >(prepareDownload);
            Assert.AreEqual(prepareDownload.Result.Details.Path, "image/image%3A%2F%2Fhttp%253A%252F%252Fthetvdb.com%252Fbanners%252Ffanart%252Foriginal%252F295647-11.jpg%2F");
        }
Exemplo n.º 10
0
        public void WhenGettingDirectory_WithValidDirectory_ItShouldReturnADirectoryResult()
        {
            var service    = new KodiService();
            var parameters = new GetDirectoryParams
            {
                Directory  = "/media/gotham/series/Dark Matter/Season 01/",
                Properties = FileProperties.All()
            };
            var directory = service.GetDirectory(parameters);

            Assert.IsNotNull(directory);
            Assert.IsInstanceOf <JsonRpcResponse <GetDirectoryResponse> >(directory);
            Assert.AreEqual(directory.Result.Files.Count, 13);
            Assert.AreEqual(directory.Result.Files.FirstOrDefault(f => f.FilePath.Contains("S01E01"))?.FilePath, "/media/gotham/series/Dark Matter/Season 01/Dark Matter - S01E01 - Episode One.mkv");
        }
Exemplo n.º 11
0
        public void WhenGettingAllEpisodes_ItShouldReturnAListOfEpisodes()
        {
            var service = new KodiService();

            var parameters = new GetEpisodesParams
            {
                Properties = new[] { EpisodeProperties.Title, EpisodeProperties.UniqueId }
            };

            var details = service.GetEpisodes(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.That(details.Result.Episodes.Count, Is.GreaterThan(0));
            Assert.IsInstanceOf <List <Episode> >(details.Result.Episodes);
        }
Exemplo n.º 12
0
        public void WhenGettingAllMovies_ItShouldReturnAListOfMovies()
        {
            var service = new KodiService();

            var parameters = new GetMoviesParams
            {
                Properties = new[] { MovieProperties.Title, MovieProperties.Year }
            };

            var details = service.GetMovies(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.Greater(details.Result.Movies.Count, 0);
            Assert.IsInstanceOf <List <Movie> >(details.Result.Movies);
        }
Exemplo n.º 13
0
        public void WhenGettingTvShowDetails_WithATvShowIdOfOne_ItShouldReturnATvShow()
        {
            var service = new KodiService();

            var parameters = new GetTvShowDetailsParams
            {
                TvShowId   = 1,
                Properties = new[] { TvShowProperties.Title, TvShowProperties.Year }
            };

            var details = service.GetTvShowDetails(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.AreEqual(1, details.Result.TvShowDetails.TvShowId);
        }
Exemplo n.º 14
0
        public void WhenGettingMovieDetails_WithAMovieIdOfOne_ItShouldReturnAMovie()
        {
            var service = new KodiService();

            var parameters = new GetMovieDetailsParams
            {
                MovieId    = 1,
                Properties = new[] { MovieProperties.Title, MovieProperties.Year }
            };

            var details = service.GetMovieDetails(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.AreEqual(1, details.Result.MovieDetails.MovieId);
        }
Exemplo n.º 15
0
        public void WhenGettingAnEpisode_WithAnEpisodeIdOfOne_ItShouldReturnAnEpisode()
        {
            var service = new KodiService();

            var parameters = new GetEpisodeDetailsParams
            {
                EpisodeId  = 1,
                Properties = new[] { EpisodeProperties.Title, EpisodeProperties.UniqueId }
            };

            var details = service.GetEpisodeDetails(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.AreEqual(1, details.Result.EpisodeDetails.EpisodeId);
        }
Exemplo n.º 16
0
        public void WhenGettingAllRecentlyAddedEpisodes_ItShouldReturnAListOfEpisodes()
        {
            var service = new KodiService();

            var parameters = new GetRecentlyAddedEpisodesParams
            {
                Properties = new[] { EpisodeProperties.Title, EpisodeProperties.DateAdded }
            };

            var details = service.GetRecentlyAddedEpisodes(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.Greater(details.Result.Episodes.Count, 0);
            Assert.IsInstanceOf <List <Episode> >(details.Result.Episodes);
        }
Exemplo n.º 17
0
        public void WhenGettingAllTvShows_ItShouldReturnAListOfTvShows()
        {
            var service = new KodiService();

            var parameters = new GetTvShowsParams
            {
                Properties = new[] { TvShowProperties.Title, TvShowProperties.Year }
            };

            var details = service.GetTvShows(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.Greater(details.Result.TvShows.Count, 0);
            Assert.IsInstanceOf <List <TvShow> >(details.Result.TvShows);
        }
Exemplo n.º 18
0
        public void WhenGettingFileDetails_WithValidFile_ItShouldReturnAFileResult()
        {
            var service    = new KodiService();
            var parameters = new GetFileDetailsParams
            {
                File       = "/media/gotham/series/Dark Matter/Season 02/Dark Matter - S02E03 - I’ve Seen the Other Side of You.mkv",
                Properties = FileProperties.All()
            };

            var fileDetails = service.GetFileDetails(parameters);

            Assert.IsNotNull(fileDetails);
            Assert.IsInstanceOf <JsonRpcResponse <GetFileDetailsResponse> >(fileDetails);
            StringAssert.IsMatch(fileDetails.Result.FileDetails.FilePath, "/media/gotham/series/Dark Matter/Season 02/Dark Matter - S02E03 - I’ve Seen the Other Side of You.mkv");
            Assert.AreEqual(fileDetails.Result.FileDetails.MimeType, "video/x-matroska");
            Assert.AreEqual(fileDetails.Result.FileDetails.Size, 857542653);
        }
Exemplo n.º 19
0
        public void WhenGettingAllEpisodes_WithAnTvShowIdOf1_ItShouldReturnAListOfEpisodesBelongingToTvShow()
        {
            var service = new KodiService();

            var parameters = new GetEpisodesParams
            {
                TvShowId   = 1,
                Properties = new[] { EpisodeProperties.Title, EpisodeProperties.TvShowId }
            };

            var details = service.GetEpisodes(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.IsInstanceOf <List <Episode> >(details.Result.Episodes);
            Assert.That(details.Result.Episodes.Find(s => s.TvShowId != 1), Is.Null);
        }
Exemplo n.º 20
0
        public void WhenGettingAllSeasons_ItShouldReturnAListOfSeasons()
        {
            var service = new KodiService();

            var parameters = new GetSeasonsParams
            {
                TvShowId   = 1,
                Properties = new[] { SeasonProperties.ShowTitle, SeasonProperties.SeasonNumber }
            };

            var details = service.GetSeasons(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.Greater(details.Result.Seasons.Count, 0);
            Assert.IsInstanceOf <List <Season> >(details.Result.Seasons);
        }
Exemplo n.º 21
0
        public void WhenGettingAllEpisodes_WithAnTvShowId1AndSeasonNumber1_ItShouldReturnAListOfEpisodesBelongingToSeason()
        {
            var service = new KodiService();

            var parameters = new GetEpisodesParams
            {
                TvShowId     = 1,
                SeasonNumber = 1,
                Properties   = new[] { EpisodeProperties.Title, EpisodeProperties.Season }
            };

            var details = service.GetEpisodes(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.IsInstanceOf <List <Episode> >(details.Result.Episodes);
            Console.WriteLine(details.Result.Episodes.Find(s => s.TvShowId != 1).Title);
            Console.WriteLine(details.Result.Episodes.Find(s => s.TvShowId != 1).TvShowId);
            Assert.That(details.Result.Episodes.Find(s => s.Season != 1), Is.Null);
        }
Exemplo n.º 22
0
        public void WhenGettingAllEpisodes_WithALimitOf0And1_ItShouldReturnAListWithOneEpisode()
        {
            var service = new KodiService();

            var parameters = new GetEpisodesParams
            {
                Properties = new[] { EpisodeProperties.Title, EpisodeProperties.UniqueId },
                Limits     = new Limits
                {
                    Start = 0,
                    End   = 1
                }
            };

            var details = service.GetEpisodes(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.That(details.Result.Episodes.Count, Is.EqualTo(1));
            Assert.IsInstanceOf <List <Episode> >(details.Result.Episodes);
        }
Exemplo n.º 23
0
        public void WhenGettingAllTvShows_WithALimitOf0And1_ItShouldReturnAListWithOneTvShow()
        {
            var service = new KodiService();

            var parameters = new GetTvShowsParams
            {
                Properties = new[] { TvShowProperties.Title },
                Limits     = new Limits
                {
                    Start = 0,
                    End   = 1
                }
            };

            var details = service.GetTvShows(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.That(details.Result.TvShows.Count, Is.EqualTo(1));
            Assert.IsInstanceOf <List <TvShow> >(details.Result.TvShows);
        }
Exemplo n.º 24
0
        public void WhenGettingAllSeasons_WithALimitOf0And1_ItShouldReturnAListWithOneSeason()
        {
            var service = new KodiService();

            var parameters = new GetSeasonsParams
            {
                TvShowId   = 1,
                Properties = new[] { SeasonProperties.ShowTitle },
                Limits     = new Limits
                {
                    Start = 0,
                    End   = 1
                }
            };

            var details = service.GetSeasons(parameters);

            Assert.IsNotNull(details);
            Assert.IsNotNull(details.Result);
            Assert.That(details.Result.Seasons.Count, Is.EqualTo(1));
            Assert.IsInstanceOf <List <Season> >(details.Result.Seasons);
        }
Exemplo n.º 25
0
 public RpcConnector(KodiService service)
 {
     _service = service;
 }