private string GetStorylistTag(StoryKind kind) { switch (kind) { case StoryKind.Top: return("topstories"); case StoryKind.New: return("newstories"); case StoryKind.Best: return("beststories"); case StoryKind.Ask: return("askstories"); case StoryKind.Show: return("showstories"); case StoryKind.Job: return("jobstories"); default: throw new ArgumentOutOfRangeException(nameof(kind), kind, null); } }
public async Task <List <int> > GetStoryListAsync(StoryKind kind) { var listTag = GetStorylistTag(kind); var response = await _client.GetStringAsync(listTag + ".json"); var items = JsonConvert.DeserializeObject <List <int> >(response); return(items); }
public async Task FetchTheRightKindOfStories(StoryKind storyKind) { var items = Enumerable.Range(0, 20).ToList(); var news = News; var actualStoryKind = StoryKind.Best; news.Setup(n => n.GetStoryListAsync(It.IsAny <StoryKind>())) .Callback((StoryKind sk) => actualStoryKind = sk) .ReturnsAsync(items) .Verifiable(); var sut = new MockNewsViewModel(Navigation.Object, Messenger.Object, news.Object, Reachability.Object, Features.Object, Browser.Object, Dialog.Object); sut.SetStoryKind(storyKind); await sut.Initialize(); sut.ViewCreated(); Assert.Equal(storyKind, actualStoryKind); news.Verify(n => n.GetStoryListAsync(storyKind), Times.Once); }