public void Setup() { _aniListClient = Substitute.For <IAniListClient>(); _aniListClient.FindSeriesAsync(null, null) .ReturnsForAnyArgs( Left <ProcessFailedResult, IEnumerable <AniListSeriesData> >( TestProcessResultContext.Failed("Failed"))); _sources = new TestSources(); _titleNormaliser = Substitute.For <ITitleNormaliser>(); _titleNormaliser.GetNormalisedTitle(Arg.Any <string>()).Returns(x => $"Normalised{x.Arg<string>()}"); _embyData = Substitute.For <IEmbyItemData>(); _embyData.Identifier.Returns(new ItemIdentifier(0, 0, "Name")); _embyData.Language.Returns("en"); _mediaItem = Substitute.For <IMediaItem>(); _mediaItem.EmbyData.Returns(_embyData); _mediaItem.ItemType.Returns(MediaItemTypes.Series); _aniDbTitles = new ItemTitleData[] { }; _aniDbSourceData = Substitute.For <ISourceData <AniDbSeriesData> >(); _aniDbSourceData.Data.Returns(x => new AniDbSeriesData { Titles = _aniDbTitles }); _aniListConfiguration = Substitute.For <IAnilistConfiguration>(); _aniListConfiguration.IsLinked.Returns(true); _loader = new AniListSeriesFromAniDb(_aniListClient, _sources, _titleNormaliser, _aniListConfiguration); }
public void SelectTitle_NoTitleSelected_ReturnsFailed() { var titles = new ItemTitleData[] { }; _titleSelector.SelectTitle(titles, TitleType.Localized, "en") .Returns(Option <ItemTitleData> .None); var result = _aniDbSource.SelectTitle(titles, "en", new ProcessResultContext("", "", null)); result.IsLeft.Should().BeTrue(); result.IfLeft(f => f.Reason.Should().Be("Failed to find a title")); }
public void SelectTitle_TitleSelected_ReturnsTitle() { var titles = new ItemTitleData[] { }; _titleSelector.SelectTitle(titles, TitleType.Localized, "en") .Returns(Option <ItemTitleData> .Some(new ItemTitleData { Title = "TitleName" })); var result = _aniDbSource.SelectTitle(titles, "en", new ProcessResultContext("", "", null)); result.IsRight.Should().BeTrue(); result.IfRight(r => r.Should().Be("TitleName")); }
public void Setup() { _aniDbSource = Substitute.For <IAniDbSource>(); _sources = Substitute.For <ISources>(); _sources.AniDb.Returns(_aniDbSource); _embyItemData = Substitute.For <IEmbyItemData>(); _embyItemData.Language.Returns("en"); _aniDbSeriesTitles = new ItemTitleData[] { }; var aniDbSeriesData = new AniDbSeriesData { Titles = _aniDbSeriesTitles }; _embyItemData.Identifier.Returns(new ItemIdentifier(67, Option <int> .None, "Name")); _aniDbSource.GetSeriesData(_embyItemData, Arg.Any <ProcessResultContext>()) .Returns(aniDbSeriesData); }