public void AddPost() { //-- arrange var countBeforeAdd = _repository.GetPosts(1, _resourceParameters).Count(); var post = new Post { Title = "title", Body = "body", TimeCreated = DateTime.Now }; //-- act _repository.AddPost(1, post); _repository.Save(); var actual = _repository.GetPosts(1, _resourceParameters).Count(); //-- assert Assert.AreEqual(countBeforeAdd + 1, actual); //-- clean up _repository.DeletePost(post); _repository.Save(); }
public void TestInitialize() { _connection = new SqliteConnection("DataSource=:memory:"); _connection.Open(); var options = new DbContextOptionsBuilder <WeblogContext>() .UseSqlite(_connection) .Options; _context = new WeblogContext(options); _context.Database.EnsureCreated(); _repository = new WeblogDataRepository(_context); _resourceParameters = new CommentsResourceParameters { PageNumber = 1, PageSize = 10 }; _repository.AddUser(new User { FirstName = "fname", LastName = "lname", EmailAddress = "user@email", Password = "******" }); _repository.Save(); _repository.AddBlog(1, new Blog { Title = "blog-title", Excerpt = "blog-excerpt" }); _repository.Save(); _repository.AddPost(1, new Post { Title = "post-title", Body = "post-body", TimeCreated = DateTime.Now }); _repository.Save(); }
public IActionResult CreatePost(int userId, int blogId, [FromBody] PostForManipulationDto post, [FromHeader(Name = nameof(HeaderNames.Accept))] string mediaType) { if (!_weblogDataRepository.UserExists(userId) || !_weblogDataRepository.BlogExists(blogId)) { return(NotFound()); } var emailAddress = post.Credentials.EmailAddress; var password = post.Credentials.Password; if (!_weblogDataRepository.Authorized(userId, emailAddress, password)) { return(Unauthorized()); } var postEntity = _mapper.Map <Entities.Post>(post); _weblogDataRepository.AddPost(blogId, postEntity); _weblogDataRepository.Save(); var postToReturn = _mapper.Map <PostDto>(postEntity); var includeLinks = MediaTypes.IncludeLinks(mediaType); if (!includeLinks) { return(CreatedAtRoute(nameof(GetPost), new { userId, blogId, postId = postToReturn.PostId }, postToReturn)); } var links = CreateLinksForPost(Url, userId, blogId, postToReturn.PostId); var postWithLinks = new PostDtoWithLinks(postToReturn, links); return(CreatedAtRoute(nameof(GetPost), new { userId, blogId, postId = postToReturn.PostId }, postWithLinks)); }