public async Task IncrementallyUpdatesArticleDataPartsWhenFound(Article existingArticle, ArticleRequest updatedArticle, Action <Article, ArticleRequest> validationAction) { var contextFixture = new MockBlogApiDbContextFixture(); contextFixture.Mock .Setup(ctx => ctx.Find <Article>(existingArticle.Id)) .Returns(async() => { await Task.CompletedTask; return(existingArticle); }); var clock = new MockClock(); var coordinatorFixture = new UpdateArticleCoordinatorFixture { Context = contextFixture.Build(), Clock = clock }; var coordinator = coordinatorFixture.Build(); Assert.False(existingArticle.Updated.HasValue); var result = await coordinator.TryUpdateArticle(existingArticle.Id, updatedArticle); contextFixture.Mock.Verify(ctx => ctx.Find <Article>(existingArticle.Id)); contextFixture.Mock.Verify(ctx => ctx.SaveChanges()); Assert.True(result); Assert.Equal(clock.Now, existingArticle.Updated.GetValueOrDefault()); validationAction(existingArticle, updatedArticle); }
public async Task ReturnsFalseWhenArticleNotFound() { var articleIdThatDoesNotExist = Guid.NewGuid(); var contextFixture = new MockBlogApiDbContextFixture(); contextFixture.Mock.Setup(ctx => ctx.Find <Article>(It.IsAny <Guid>())); var coordinatorFixture = new UpdateArticleCoordinatorFixture { Context = contextFixture.Build() }; var coordinator = coordinatorFixture.Build(); var result = await coordinator.TryUpdateArticle(articleIdThatDoesNotExist, new ArticleRequest()); contextFixture.Mock.Verify(ctx => ctx.Find <Article>(articleIdThatDoesNotExist)); Assert.False(result); }