public void Create_Review() { var controller = new ReviewsController(new ReviewRepositoryMock(), new ClientRepositoryMock()); var reviewForCreation = new ReviewDtoForCreation() { AgentId = HRServiceMock.TestAgent.Id, Content = "This agent sucks!" }; var result = controller.Post(reviewForCreation, ClientRepositoryMock.TestClient.Id); var okResult = result.Should().BeOfType <CreatedAtRouteResult>().Subject; var review = okResult.Value.Should().BeAssignableTo <ReviewWithClientDto>().Subject; review.Content.Should().Be(reviewForCreation.Content); }
public IActionResult Post([FromBody] ReviewDtoForCreation review, [FromQuery(Name = "clientId")] int clientId) { var finalReview = Mapper.Map <Review>(review); var client = _clientRepository.Get(clientId); if (client == null) { return(NotFound("Could not find client")); } // Set default time created finalReview.DateCreated = DateTime.Now.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"); client.Reviews.Add(finalReview); if (!_clientRepository.Save()) { return(BadRequest("Could not create review")); } var result = AutoMapper.Mapper.Map <ReviewWithClientDto>(finalReview); return(CreatedAtRoute("GetReview", new { id = finalReview.Id }, result)); }