public void CreateCurrectReview_When_ParamsValid() { var options = Utils.GetOptions(nameof(CreateCurrectReview_When_ParamsValid)); var reviewDTO = TestsModelsSeeder.SeedReviewDTO(); var user = TestsModelsSeeder.SeedUser(); var targetbeer = TestsModelsSeeder.SeedBeer(); using (var arrangeContext = new BeerOverflowContext(options)) { arrangeContext.Users.Add(user); arrangeContext.Beers.Add(targetbeer); arrangeContext.SaveChanges(); } using (var assertContext = new BeerOverflowContext(options)) { var sut = new ReviewServices(assertContext); var act = sut.CreateReview(reviewDTO); assertContext.SaveChanges(); var result = assertContext.Reviews.ToList()[0]; Assert.AreEqual(reviewDTO.Name, result.Name); Assert.AreEqual(reviewDTO.Rating, result.Rating); Assert.AreEqual(reviewDTO.Text, result.Text); Assert.AreEqual(reviewDTO.Author, reviewDTO.Author); } }
public ActionResult Create(ReviewViewModel modelView) { try { ApplicationUser user = System.Web.HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>() .FindById(System.Web.HttpContext.Current.User.Identity.GetUserId()); var userService = new UsersServices(db); var userInfo = userService.GetUserByEmail(user.Email); //error handling , business rules. if (modelView.Note.IsEmpty() || modelView.Note.Length > 250) { if (modelView.Note.IsEmpty()) { ModelState.AddModelError(string.Empty, "Comments cannot be empty"); } else if (modelView.Note.Length > 250) { ModelState.AddModelError(string.Empty, "Comments cannot be more that 250 characters"); } var reviewInfoModel = GetReviewViewModel(userInfo.UserId); reviewInfoModel.LogUser = userInfo; return(View("Create", reviewInfoModel)); } var reviewService = new ReviewServices(db); //create the review out of the viewModel. var review = new Review(); review.Comments = modelView.Note; review.ReviewRatingTypeCd = modelView.ReviewRatingCd; review.ServiceTypeCd = modelView.SystemCd; review.UserId = userInfo.UserId; var serviceType = db.ServiceTypes.FirstOrDefault(x => x.ServiceTypeCd == modelView.SystemCd); review.ServiceType = serviceType; var reviewType = db.ReviewRatingTypes.FirstOrDefault(x => x.ReviewRatingTypeCd == modelView.ReviewRatingCd); review.ReviewRatingType = reviewType; // review. reviewService.CreateReview(review); return(RedirectToAction("Index")); } catch (Exception) { return(RedirectToAction("Index")); } }
public void ThrowArgumentException_When_TargetBeerNotValid() { var options = Utils.GetOptions(nameof(ThrowArgumentException_When_TargetBeerNotValid)); var user = TestsModelsSeeder.SeedUser(); var reviewDTO = TestsModelsSeeder.SeedReviewDTO(); using (var arrangeContext = new BeerOverflowContext(options)) { arrangeContext.Users.Add(user); arrangeContext.SaveChanges(); } using (var assertContext = new BeerOverflowContext(options)) { var sut = new ReviewServices(assertContext); Assert.ThrowsException <ArgumentNullException>(() => sut.CreateReview(reviewDTO)); } }