Пример #1
0
        public async Task Given_ValidBlogPostProvided_When_Post_Then_CreateBlogPost()
        {
            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "CreateBlogPost")
                          .Options;

            var newBlogPost = new BlogPost()
            {
                Title   = "new blogPost",
                Content = "some content"
            };

            using (var context = new Context(options))
            {
                var service = new BlogPostController(new GenericRepository <BlogPost>(context));
                var result  = await service.PostBlogPost(newBlogPost);

                Assert.IsNotNull(context.BlogPosts.Find(newBlogPost.Id));

                var actionResult = (result as ActionResult <BlogPost>).Result as CreatedAtActionResult;

                Assert.AreEqual(201, actionResult.StatusCode);
                Assert.AreEqual("GetBlogPost", actionResult.ActionName);
                Assert.AreEqual(newBlogPost.Id, actionResult.RouteValues.GetValueOrDefault("id"));
                Assert.AreEqual(newBlogPost, actionResult.Value);
            }
        }
        public void GivenABlogPost_WhenPost_ReturnResult()
        {
            var loggerMock = new Mock <ILogger <BlogPostController> >();

            var postServiceMock = new Mock <IBlogPostService>();

            postServiceMock.Setup(p => p.Add(It.IsAny <BlogPost>()));

            var categoryMock = new BlogCategory {
                CategoryId = 1, Name = "Category Alpha"
            };
            var categoryServiceMock = new Mock <IBlogCategoryService>();

            categoryServiceMock.Setup(p => p.Get(1)).Returns(categoryMock);

            var postData = new BlogPostViewModel {
                CategoryId = 1, Creator = "User One", Title = "My first post", Body = "Hello!", Dt = DateTime.Now
            };

            var controller = new BlogPostController(loggerMock.Object, postServiceMock.Object, categoryServiceMock.Object);
            var post       = controller.PostBlogPost(postData);

            Assert.NotNull(post);
            var actionResult          = Assert.IsType <ActionResult <BlogPostViewModel> >(post);
            var createdAtActionResult = Assert.IsType <CreatedAtActionResult>(actionResult.Result);
            var returnedPost          = Assert.IsType <BlogPostViewModel>(createdAtActionResult.Value);

            Assert.Equal("My first post", returnedPost.Title);
            Assert.Equal("Hello!", returnedPost.Body);
        }