public Mock <IKodiService> GetKodiServiceMock(GetEpisodeDetailsParams parameters) { var mock = new Mock <IKodiService>(); mock.Setup(s => s.GetEpisodeDetails(parameters, "UnitTests")) .Returns(() => MakeFauxRequest <GetEpisodeDetailsResponse>($"episode.{parameters.EpisodeId}.json")); return(mock); }
public void WhenGettingEpisodeDetails_WithAnInvalidEpisodeId_ItShouldThrowException() { var service = new KodiService(); var parameters = new GetEpisodeDetailsParams { EpisodeId = (int)Episodes.TestSet.InvalidId }; Assert.That(() => service.GetEpisodeDetails(parameters, "UnitTests"), Throws.Exception.TypeOf <Exception>()); }
public void GivenAJsonString_WhenGettingAnEpisodeByEpisodeId_WithAnInvalidEpisodeId_ItShouldThrowRpcInternalServerErrorException() { const Episodes.TestSet id = Episodes.TestSet.InvalidId; var parameters = new GetEpisodeDetailsParams { EpisodeId = (int)id, Properties = EpisodeProperties.All() }; var mock = GetKodiServiceMock(parameters); var service = mock.Object; Assert.That(() => service.GetEpisodeDetails(parameters, "UnitTests"), Throws.Exception.TypeOf <RpcInternalServerErrorException>()); }
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); }
public void GivenAJsonString_WhenGettingAnEpisodeByEpisodeId_WithAValidEpisodeId_ItShouldReturnAnEpisode() { const Episodes.TestSet id = Episodes.TestSet.Continuum; var parameters = new GetEpisodeDetailsParams { EpisodeId = (int)id }; var mock = GetKodiServiceMock(parameters); var service = mock.Object; var actual = service.GetEpisodeDetails(parameters, "UnitTests"); var expected = Episodes.GetEpisode(id); Assert.IsInstanceOf <JsonRpcResponse <GetEpisodeDetailsResponse> >(actual); Assert.That(actual.Result.EpisodeDetails.EpisodeId, Is.EqualTo(expected.EpisodeDetails.EpisodeId)); AssertThatPropertyValuesAreEquals(actual.Result.EpisodeDetails, expected.EpisodeDetails); }
public JsonRpcResponse <GetEpisodeDetailsResponse> GetEpisodeDetails(GetEpisodeDetailsParams parameters, string requestId = "GetTvShowDetailsResponse") { return(_rpcConnector.MakeRequest <GetEpisodeDetailsResponse>(KodiMethods.GetEpisodeDetails, parameters, requestId)); }