public void Add_Date_Tomorrow()
        {
            ReviewModelDTO newReview = new ReviewModelDTO()
            {
                Reviewer = new ReviewerModelDTO()
                {
                    Id   = 4,
                    Name = "Reviewer 4"
                },
                Restaurant = new RestaurantModelDTO()
                {
                    Id = 4
                },
                ReviewedDateTime = DateTime.Now.AddDays(1),
                Rating           = 3,
                ReviewText       = "This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4."
            };
            ReviewAPIRequestDTO request = new ReviewAPIRequestDTO()
            {
                Header = new APIRequestHeaderDTO()
                {
                    RequestID = 1
                },
                Data = newReview
            };
            APIResponseDTO response = this.reviewController.Post(request);

            Assert.AreNotEqual <ErrorDTO>(response.Error, null);
            Assert.AreEqual <APIBaseDTO>(response.Data, null);
        }
        public void Add_Reviewer_Not_Exist_Name_Empty()
        {
            ReviewModelDTO newReview = new ReviewModelDTO()
            {
                Reviewer   = null,
                Restaurant = new RestaurantModelDTO()
                {
                    Name = string.Empty
                },
                ReviewedDateTime = DateTime.Now,
                Rating           = 1,
                ReviewText       = "This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4."
            };
            ReviewAPIRequestDTO request = new ReviewAPIRequestDTO()
            {
                Header = new APIRequestHeaderDTO()
                {
                    RequestID = 1
                },
                Data = newReview
            };
            APIResponseDTO response = this.reviewController.Post(request);

            Assert.AreNotEqual <ErrorDTO>(response.Error, null);
            Assert.AreEqual <APIBaseDTO>(response.Data, null);
        }
        public void Add_All_Empty()
        {
            ReviewModelDTO newReview = new ReviewModelDTO()
            {
                Reviewer = new ReviewerModelDTO()
                {
                    Name = string.Empty
                },
                Restaurant = new RestaurantModelDTO()
                {
                    Id = 1
                },
                ReviewedDateTime = DateTime.Now,
                Rating           = 1,
                ReviewText       = string.Empty
            };
            ReviewAPIRequestDTO request = new ReviewAPIRequestDTO()
            {
                Header = new APIRequestHeaderDTO()
                {
                    RequestID = 1
                },
                Data = newReview
            };
            APIResponseDTO response = this.reviewController.Post(request);

            Assert.AreNotEqual <ErrorDTO>(response.Error, null);
            Assert.AreEqual <APIBaseDTO>(response.Data, null);
        }
 public APIResponseDTO Post([FromBody] ReviewAPIRequestDTO request)
 {
     try
     {
         ReviewModelDTO newReview = request.Data;
         newReview = this.reviewService.AddReview(newReview);
         return(GetDataDTO(newReview));
     }
     catch (Exception ex)
     {
         return(GetErrorDTO(ex));
     }
 }
        public void Add()
        {
            ReviewModelDTO newReview = new ReviewModelDTO()
            {
                Reviewer = new ReviewerModelDTO()
                {
                    Id   = 4,
                    Name = "Reviewer 4"
                },
                Restaurant = new RestaurantModelDTO()
                {
                    Id = 4
                },
                ReviewedDateTime = DateTime.Now,
                Rating           = 3,
                ReviewText       = "This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4. This is sample review text by Reviewer 4 for Restaurant 4."
            };
            ReviewAPIRequestDTO request = new ReviewAPIRequestDTO()
            {
                Header = new APIRequestHeaderDTO()
                {
                    RequestID = 1
                },
                Data = newReview
            };
            APIResponseDTO response = this.reviewController.Post(request);

            Assert.AreEqual <ErrorDTO>(response.Error, null);
            Assert.AreNotEqual <APIBaseDTO>(response.Data, null);
            ReviewModelDTO newReviewRet = (ReviewModelDTO)response.Data;

            Assert.AreNotEqual <ReviewModelDTO>(newReviewRet, null);
            Assert.AreEqual <string>(newReviewRet.Reviewer.Name, "Reviewer 4");
            Assert.AreEqual <int>(newReviewRet.Restaurant.Id, 4);
            Assert.AreEqual <int>(newReviewRet.Rating, 3);

            Assert.AreEqual <int>(newReview.Id, newReviewRet.Id);
            Assert.AreEqual <string>(newReview.Reviewer.Name, newReviewRet.Reviewer.Name);
            Assert.AreEqual <int>(newReview.Restaurant.Id, newReviewRet.Restaurant.Id);
            Assert.AreEqual <int>(newReview.Rating, newReviewRet.Rating);

            response = this.reviewController.Get(newReviewRet.Id);
            ReviewModelDTO review = (ReviewModelDTO)response.Data;

            Assert.AreNotEqual <ReviewModelDTO>(review, null);
            Assert.AreEqual <int>(review.Id, newReviewRet.Id);
            Assert.AreEqual <string>(review.Reviewer.Name, newReviewRet.Reviewer.Name);
            Assert.AreEqual <int>(review.Restaurant.Id, newReviewRet.Restaurant.Id);
            Assert.AreEqual <int>(review.Rating, newReviewRet.Rating);
        }