コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }