Exemple #1
0
        public void GivenAHackerNewsResponse_WhereTwoWellFormedPostsExist_ExpectTwoPostObjectsToBeConstructed()
        {
            //Arrange
            var mockHttp = MockPostHttpMessageHandlerCreator.Create(new List <long> {
                21134540, 21135259
            });
            var client  = new HttpClient(mockHttp);
            var service = new HackerNewsService(client);

            //Act
            var posts = service.GetTopPosts(consoleStream).ToList();

            //Assert
            posts.Count.Should().Be(2);
            posts.FirstOrDefault(p => p.id == 21134540).Should().NotBeNull();
            posts.FirstOrDefault(p => p.id == 21135259).Should().NotBeNull();
        }
        public void GivenHandleCalled_WithHttpResponseWithFiveValidPosts_ExpectFormattedJsonOnOutputWithPostsInOrderOfIdsCollection()
        {
            //Arrange
            var mockHttpHandler = MockPostHttpMessageHandlerCreator.Create(new List <long> {
                21134540, 21135259, 21144604, 21138841, 21144098
            });
            var service  = new HackerNewsService(new HttpClient(mockHttpHandler));
            var handler  = new HackerNewsScraperHandler(service);
            var expected = JsonPostResourceLoader.Load("WithHttpResponseWithFiveValidPosts");

            //Act
            handler.Handle(new Options {
                Posts = 5
            }, consoleStream);

            //Assert
            var output = consoleStream.Output.ToString();

            output.Should().Be(expected);
        }
        public void GivenHandleCalled_WithHttpResponseWithTwoValidPostsAndPostsNumberIsOne_ExpectFormattedJsonOnOutputStreamWithOnePost()
        {
            //Arrange
            var mockHttpHandler = MockPostHttpMessageHandlerCreator.Create(new List <long> {
                21134540, 21135259
            });
            var service  = new HackerNewsService(new HttpClient(mockHttpHandler));
            var handler  = new HackerNewsScraperHandler(service);
            var expected = JsonPostResourceLoader.Load("WithHttpResponseWithTwoValidPostsAndPostsNumberIsOne");

            //Act
            handler.Handle(new Options {
                Posts = 1
            }, consoleStream);

            //Assert
            var output = consoleStream.Output.ToString();

            output.Should().Be(expected);
        }