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