public async Task HappyPathSendEpisodeWithExistingSeriesToSonarr() { var seriesResult = new SonarrAddSeries { monitored = true, title = "TitleReturned" }; var selectedSeries = F.Build <Series>().With(x => x.tvdbId, 1).CreateMany(); SonarrMock.Setup(x => x.GetSeries(It.IsAny <string>(), It.IsAny <Uri>())).Returns(selectedSeries.ToList()); SonarrMock.Setup(x => x.AddSeries( It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int[]>(), It.IsAny <string>(), It.IsAny <Uri>(), It.IsAny <bool>(), It.IsAny <bool>())).Returns(seriesResult); var sonarrEpisodes = new SonarrEpisodes() { title = "abc", seasonNumber = 2, episodeNumber = 1, monitored = false }; var episodesList = F.CreateMany <SonarrEpisodes>().ToList(); episodesList.Add(sonarrEpisodes); SonarrMock.Setup(x => x.GetEpisodes(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Uri>())).Returns(F.CreateMany <SonarrEpisodes>()); Sender = new TvSender(SonarrMock.Object, SickrageMock.Object, Cache.Object); var episodes = new List <EpisodesModel> { new EpisodesModel { EpisodeNumber = 1, SeasonNumber = 2 } }; var model = F.Build <RequestedModel>().With(x => x.ProviderId, 1) .With(x => x.Episodes, episodes).Create(); var result = await Sender.SendToSonarr(GetSonarrSettings(), model, "2"); Assert.That(result, Is.EqualTo(seriesResult)); SonarrMock.Verify(x => x.AddSeries(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <bool>(), It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int[]>(), It.IsAny <string>(), It.IsAny <Uri>(), true, It.IsAny <bool>()), Times.Once); }
public SonarrEpisodes UpdateEpisode(SonarrEpisodes episodeInfo, string apiKey, Uri baseUrl) { var request = new RestRequest { Resource = "/api/Episode", Method = Method.PUT }; request.AddHeader("X-Api-Key", apiKey); request.AddJsonBody(episodeInfo); try { var policy = RetryHandler.RetryAndWaitPolicy((exception, timespan) => Log.Error(exception, "Exception when calling UpdateEpisode for Sonarr, Retrying {0}", timespan)); return(policy.Execute(() => Api.ExecuteJson <SonarrEpisodes>(request, baseUrl))); } catch (Exception e) { Log.Error(e, "There has been an API exception when put the Sonarr UpdateEpisode"); return(null); } }