Get latest posts

This commit is contained in:
Robert Marshall 2020-04-10 10:27:55 +01:00
parent 1837f126a3
commit b4281bea62
2 changed files with 69 additions and 3 deletions

View file

@ -58,5 +58,55 @@ namespace Robware.Api.Blog.Tests {
var controller = new BlogController(logger, repo);
(await controller.Get("1")).Result.Should().BeOfType<NotFoundObjectResult>();
}
[Fact]
public async Task GetLatestPosts_WithCountOfZero_ReturnsCollectionOfTenBlogPosts() {
var logger = Substitute.For<ILogger<BlogController>>();
var repo = Substitute.For<IBlogRepository>();
repo.GetLatestPostsAsync(10).Returns(new BlogPost[10]);
var expectation = new BlogPost[10];
var controller = new BlogController(logger, repo);
(await controller.GetLatestPosts()).Value.Should().BeEquivalentTo(expectation);
}
[Fact]
public async Task GetLatestPosts_WithCountOf1_ReturnsCollectionOf1BlogPosts() {
var logger = Substitute.For<ILogger<BlogController>>();
var repo = Substitute.For<IBlogRepository>();
repo.GetLatestPostsAsync(1).Returns(new BlogPost[1]);
var expectation = new BlogPost[1];
var controller = new BlogController(logger, repo);
(await controller.GetLatestPosts(1)).Value.Should().BeEquivalentTo(expectation);
}
[Fact]
public async Task GetLatestPosts_WithCountOf1AndOffsetOf1_ReturnsCollectionOf1BlogPosts() {
var logger = Substitute.For<ILogger<BlogController>>();
var repo = Substitute.For<IBlogRepository>();
repo.GetLatestPostsAsync(1, 1).Returns(new BlogPost[1]);
var expectation = new BlogPost[1];
var controller = new BlogController(logger, repo);
(await controller.GetLatestPosts(1, 1)).Value.Should().BeEquivalentTo(expectation);
}
[Fact]
public async Task GetLatestPosts_WithCountOf1AndOffsetOfOutOfRange_ReturnsCollectionOf1BlogPosts() {
var logger = Substitute.For<ILogger<BlogController>>();
var repo = Substitute.For<IBlogRepository>();
repo.GetLatestPostsAsync(1, 1000).Throws(new ItemNotFoundException("", null));
var controller = new BlogController(logger, repo);
(await controller.GetLatestPosts(1, 1000)).Result.Should().BeOfType<NotFoundObjectResult>();
}
}
}