public async Task Setup() { _part = 2; Iterator = new Mock <IPartialCollectionIterator>(MockBehavior.Strict); Iterator.SetupGet(_ => _.FirstPartIri).Returns(() => new Iri($"page:{_part = 1}")); Iterator.SetupGet(_ => _.LastPartIri).Returns(() => new Iri($"page:{_part = 4}")); Iterator.SetupGet(_ => _.CurrentPartIri).Returns(() => MakePartIri(0)); Iterator.SetupGet(_ => _.NextPartIri).Returns(() => MakePartIri(1)); Iterator.SetupGet(_ => _.PreviousPartIri).Returns(() => MakePartIri(-1)); Iterator.Setup(_ => _.GetFirstPart()).ReturnsAsync(new[] { Resource.Of <IResource>(new Iri("item:1")).Object }); Iterator.Setup(_ => _.GetLastPart()).ReturnsAsync(new[] { Resource.Of <IResource>(new Iri("item:4")).Object }); InitialCollection = new Mock <ICollection>(MockBehavior.Strict); InitialCollection.SetupGet(_ => _.Iri).Returns(new Iri("collection")); InitialCollection.SetupGet(_ => _.Members).Returns(new HashSet <IResource>() { Resource.Of <IResource>(new Iri("item:2")).Object }); InitialCollection.SetupGet(_ => _.View).Returns(() => Resource.Of <IPartialCollectionView>(new Iri($"page:{_part}")).Object); InitialCollection.Setup(_ => _.GetIterator()).Returns(Iterator.Object); Crawler = PartialCollectionCrawler.From(InitialCollection.Object); ScenarioSetup(); await TheTest(); }
public async Task should_follow_all_links_and_gather_all_members() { (await PartialCollectionCrawler.From(People).GetMembers()).Should().HaveCount(2); }