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); }