public static async Task <IList <string> > ProcessAsync(IOwinContext context, WebMediaType mediaType, string filterField, string op, int?limit, WebSortOrder?order)
        {
            switch (mediaType)
            {
            case WebMediaType.Drive:
                return(AutoSuggestion.GetValuesForField(filterField, await GetFileSystemDrives.ProcessAsync(context, null, order), op, limit).ToList());

            case WebMediaType.Movie:
                return(AutoSuggestion.GetValuesForField(filterField, await GetMoviesDetailed.ProcessAsync(context, null, null, order), op, limit).ToList());

            case WebMediaType.MusicAlbum:
                return(AutoSuggestion.GetValuesForField(filterField, await GetMusicAlbumsBasic.ProcessAsync(context, null, null, order), op, limit).ToList());

            case WebMediaType.MusicArtist:
                return(AutoSuggestion.GetValuesForField(filterField, await GetMusicArtistsDetailed.ProcessAsync(context, null, null, order), op, limit).ToList());

            case WebMediaType.MusicTrack:
                return(AutoSuggestion.GetValuesForField(filterField, await GetMusicTracksDetailed.ProcessAsync(context, null, null, order), op, limit).ToList());

            case WebMediaType.Picture:
                return(AutoSuggestion.GetValuesForField(filterField, await GetPicturesDetailed.ProcessAsync(context, null, null, null), op, limit).ToList());

            case WebMediaType.Playlist:
                return(AutoSuggestion.GetValuesForField(filterField, await GetPlaylists.ProcessAsync(context), op, limit).ToList());

            case WebMediaType.TVEpisode:
                return(AutoSuggestion.GetValuesForField(filterField, await GetTVEpisodesDetailed.ProcessAsync(context, null, null, order), op, limit).ToList());

            case WebMediaType.TVShow:
                return(AutoSuggestion.GetValuesForField(filterField, await GetTVShowsDetailed.ProcessAsync(context, null, null, order), op, limit).ToList());

            default:
                throw new BadRequestException(string.Format("GetFilterValues() called with unsupported mediaType='{0}' filterField='{1}' op='{2}' limit='{3}'", mediaType, filterField, op, limit));
            }
        }
Example #2
0
        public void GetConstructedUri_NoParamaters_MatchesExpected()
        {
            var query = new GetPlaylists();

            var uri = query.GetConstructedUri();

            Assert.AreEqual("metadata/h5/metadata/playlists", uri);
        }
Example #3
0
        public void GetConstructedUri_NoParameters_MatchesExpected()
        {
            var query = new GetPlaylists();

            var uri = query.GetConstructedUri();

            Assert.AreEqual("metadata/h5/metadata/playlists", uri);
        }
        public void GetConstructedUri_NoParamaters_MatchesExpected()
        {
            var query = new GetPlaylists();

            var uri = query.GetConstructedUri();

            Assert.AreEqual(BaseUri, uri);
        }
        public async Task GetPlaylists_DoesNotThrow()
        {
            var query = new GetPlaylists()
                        .SkipCache();

            var result = await Global.Session.Query(query);

            Assert.IsInstanceOf(typeof(List <Playlist>), result);
        }
        public async Task GetPlaylists_IsSerializable()
        {
            var query = new GetPlaylists()
                        .SkipCache();

            var result = await Global.Session.Query(query);

            SerializationUtility <List <Playlist> > .AssertRoundTripSerializationIsPossible(result);
        }
Example #7
0
        public async Task GetPlaylists_DoesNotThrow()
        {
            var query = new GetPlaylists()
                .SkipCache();

            var result = await Global.Session.Query(query);

            Assert.IsInstanceOf(typeof(List<Playlist>), result);
        }
        public async Task Query_DoesNotThrow()
        {
            var query = new GetPlaylists()
                        .SkipCache();

            var result = await _mockSession.Query(query);

            Assert.IsInstanceOf(typeof(List <Playlist>), result);
            Assert.AreEqual(_playlists, result);
        }
Example #9
0
        public async Task Query_DoesNotThrow()
        {
            var query = new GetPlaylists()
                .SkipCache();

            var result = await _mockSession.Query(query);

            Assert.IsInstanceOf(typeof(List<Playlist>), result);
            Assert.AreEqual(_playlists, result);
        }
        public async Task GetPlaylists_IsSerializable()
        {
            var query = new GetPlaylists()
                .SkipCache();

            var result = await Global.Session.Query(query);

            var serializationUtility = new SerializationUtility<List<Playlist>>();
            serializationUtility.AssertRoundTripSerializationIsPossible(result);
        }
Example #11
0
        public async Task GetPlaylists_SchemaIsValid()
        {
            var playlistsSchema = JSchema.Parse(File.ReadAllText(Halo5Config.PlaylistJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri  = new Uri(Path.GetFullPath(Halo5Config.PlaylistJsonSchemaPath))
            });

            var query = new GetPlaylists()
                        .SkipCache();

            var jArray = await Global.Session.Get <JArray>(query.Uri);

            SchemaUtility.AssertSchemaIsValid(playlistsSchema, jArray);
        }
Example #12
0
        public async Task GetPlaylists_SchemaIsValid()
        {
            var playlistsSchema = JSchema.Parse(File.ReadAllText(Config.PlaylistJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri = new Uri(Path.GetFullPath(Config.PlaylistJsonSchemaPath))
            });

            var query = new GetPlaylists()
               .SkipCache();

            var jArray = await Global.Session.Get<JArray>(query.GetConstructedUri());

            SchemaUtility.AssertSchemaIsValid(playlistsSchema, jArray);
        }
Example #13
0
        public async Task GetPlaylists_ModelMatchesSchema()
        {
            var schema = JSchema.Parse(File.ReadAllText(Halo5Config.PlaylistJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri  = new Uri(Path.GetFullPath(Halo5Config.PlaylistJsonSchemaPath))
            });

            var query = new GetPlaylists()
                        .SkipCache();

            var result = await Global.Session.Query(query);

            var json       = JsonConvert.SerializeObject(result);
            var jContainer = JsonConvert.DeserializeObject <JContainer>(json);

            SchemaUtility.AssertSchemaIsValid(schema, jContainer);
        }
Example #14
0
        public void Uri_MatchesExpected()
        {
            var query = new GetPlaylists();

            Assert.AreEqual("https://www.haloapi.com/metadata/h5/metadata/playlists", query.Uri);
        }
Example #15
0
 public void GetPlaylistsTest()
 {
     GetPlaylists request = new GetPlaylists();
     var          result  = JsonConvert.DeserializeObject <KodiJSON.Playlist.Response.GetPlaylistsResponse>(ExecuteTest.GetResponse(request));
 }
Example #16
0
        public async Task GetPlaylists_ModelMatchesSchema()
        {
            var schema = JSchema.Parse(File.ReadAllText(Config.PlaylistJsonSchemaPath), new JSchemaReaderSettings
            {
                Resolver = new JSchemaUrlResolver(),
                BaseUri = new Uri(Path.GetFullPath(Config.PlaylistJsonSchemaPath))
            });

            var query = new GetPlaylists()
               .SkipCache();

            var result = await Global.Session.Query(query);

            var json = JsonConvert.SerializeObject(result);
            var jContainer = JsonConvert.DeserializeObject<JContainer>(json);

            SchemaUtility.AssertSchemaIsValid(schema, jContainer);
        }