public async Task SavesNewEntryWhenConditionsMeet() { var blog = new BlogFixture().Build(); var newEntryRequest = new ArticleRequest { BlogId = blog.Id, Author = "Test", Title = "Some-title", Description = "some-Description", }; var dbContextFixture = new MockBlogApiDbContextFixture().With(blog, blog.Id); var clock = new MockClock(); var blogEntryCoordinator = new CreateArticleCoordinatorFixture() { Context = dbContextFixture.Build(), Clock = clock }.Build(); var result = await blogEntryCoordinator.CreateNewArticleAsync(newEntryRequest); Assert.Equal(newEntryRequest.BlogId, result.BlogId); Assert.Equal(newEntryRequest.Author, result.Author); Assert.Equal(newEntryRequest.Title, result.Title); Assert.Equal(newEntryRequest.Description, result.Description); Assert.Equal(clock.Now, result.Created); dbContextFixture.Mock.Verify(ctx => ctx.Add(result)); dbContextFixture.Mock.Verify(ctx => ctx.SaveChanges()); }
public async Task ReturnsNullWhenErrorConditionsHit(ArticleRequest request, Blog[] blogs) { var mockBlogApiDbContextFixture = new MockBlogApiDbContextFixture(); foreach (var blog in blogs) { mockBlogApiDbContextFixture.With(blog, blog.Id); } var blogApiDbContext = mockBlogApiDbContextFixture.Build(); var blogEntryCoordinator = new CreateArticleCoordinatorFixture() { Context = blogApiDbContext }.Build(); Assert.Null(await blogEntryCoordinator.CreateNewArticleAsync(request)); }