Ejemplo n.º 1
0
        public async Task Given_ValidBlogPostProvided_When_Put_Then_UpdateBlogPost()
        {
            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "PutSuccess")
                          .Options;

            using (var context = new Context(options))
            {
                context.BlogPosts.AddRange(blogPosts);
                context.SaveChanges();
            }

            using (var context = new Context(options))
            {
                var updatedBlogPost = new BlogPost()
                {
                    Id      = blogPosts[0].Id,
                    Title   = blogPosts[0].Title,
                    Content = "updated content",
                };

                var service = new BlogPostController(new GenericRepository <BlogPost>(context));
                var result  = await service.PutBlogPost(updatedBlogPost.Id, updatedBlogPost);

                Assert.AreEqual(204, (result as StatusCodeResult).StatusCode);
                Assert.AreEqual("updated content", context.BlogPosts.Find(blogPosts[0].Id).Content);
            }
        }
        public void GivenABlogPost_WhenPut_ReturnResult()
        {
            var loggerMock = new Mock <ILogger <BlogPostController> >();

            var postServiceMock = new Mock <IBlogPostService>();

            postServiceMock.Setup(p => p.Update(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 putData = new BlogPostViewModel {
                PostId = 1, 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 result     = controller.PutBlogPost(1, putData);

            Assert.NotNull(result);
            var noContentResult = Assert.IsType <NoContentResult>(result);
        }
Ejemplo n.º 3
0
        public async Task Given_IdDoesNotMatch_When_Put_Then_Return400()
        {
            var options = new DbContextOptionsBuilder <Context>()
                          .UseInMemoryDatabase(databaseName: "PutFail")
                          .Options;

            using (var context = new Context(options))
            {
                context.BlogPosts.AddRange(blogPosts);
                context.SaveChanges();
            }

            using (var context = new Context(options))
            {
                var service = new BlogPostController(new GenericRepository <BlogPost>(context));
                var result  = await service.PutBlogPost(new Guid(), blogPosts[0]);

                Assert.AreEqual(400, (result as BadRequestResult).StatusCode);
            }
        }