AddReview_ThreeReviewersOneBusyAndAssignmentToAvailableAndBusy_ExpectBothAssignedHaveReviewsOf1AndZeroDebtTheOtherDebtOf1AndZeroReviews() { //Arrange var reviewContext = new ReviewContext(); var reviewService = new ReviewService(reviewContext); reviewService.RegisterReviewer("reviewer1"); reviewService.RegisterReviewer("reviewer2"); reviewService.RegisterReviewer("busy-reviewer"); reviewService.MakeReviewerBusy("busy-reviewer"); //Act reviewService.AddReview(new[] { "reviewer2", "busy-reviewer" }); //Assert var reviewer1 = reviewService.GetReviewer("reviewer1"); Assert.That(reviewer1.ReviewCount, Is.EqualTo(0)); Assert.That(reviewer1.ReviewDebt, Is.EqualTo(1)); var reviewer2 = reviewService.GetReviewer("reviewer2"); Assert.That(reviewer2.ReviewCount, Is.EqualTo(1)); Assert.That(reviewer2.ReviewDebt, Is.EqualTo(0)); var busyReviewer = reviewService.GetReviewer("busy-reviewer"); Assert.That(busyReviewer.ReviewCount, Is.EqualTo(1)); Assert.That(busyReviewer.ReviewDebt, Is.EqualTo(0)); }
public void Add_PassedAReview_CallsAdd() { Restaurant r1 = new Restaurant() { RestaurantId = 1, Name = "TestRestaurant4", City = "city4", Zipcode = "10804", State = "NY", Street = " 4 a", AvgRating = 9.9 }; var service = new ReviewService(_moqRepo.Object); var r = new Review { ReviewId = 5, Restaurant = r1, Reviewer = "ZestReview", Description = "Zcity", Rating = 5 }; service.AddReview(r); _moqRepo.Verify(m => m.Add(It.IsAny <Review>()), Times.Once); }
public ActionResult Guest(FormCollection form) { ViewBag.TextReturn = "Вы ввели: " + form["Text"]; ViewBag.TextReturn = form["UserName"]; reviewService.AddReview(new ViewReview(form["UserName"], DateTime.Now, form["ReviewText"])); return(View(reviewService.GetAllReviews())); }
void AddReview() { Review r = new Review(); Console.Write("Enter MovieId = "); r.MovieId = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter UserId = "); r.UserId = Convert.ToInt32(Console.ReadLine()); Console.Write("Enter Rating = "); r.Rating = Convert.ToDecimal(Console.ReadLine()); Console.Write("Enter ReviewText = "); r.ReviewText = Console.ReadLine(); if (reviewService.AddReview(r) > 0) { Console.WriteLine("Review added successfully"); } else { Console.WriteLine("Some error occurred"); } }
public void AddReview() { // Arrange int userID = 1; int bookID = 1; int rating = 4; var review = MockDataGenerator.CreateReviewViewModel(rating); var reviewDTO = MockDataGenerator.CreateReview(userID, bookID, rating); var mockReviewRepo = new Mock <IReviewRepository>(); var mockMapper = new Mock <IMapper>(); mockReviewRepo.Setup(f => f.AddReview(userID, bookID, review)).Returns(reviewDTO); var service = new ReviewService(mockReviewRepo.Object, mockMapper.Object); // Act var returnedReview = service.AddReview(userID, bookID, review); // Assert mockReviewRepo.Verify(f => f.AddReview(userID, bookID, review), Times.Once()); Assert.IsNotNull(returnedReview); Assert.AreEqual(returnedReview.User.ID, userID); Assert.AreEqual(returnedReview.Book.ID, bookID); Assert.AreEqual(returnedReview.Rating, rating); }
public IActionResult AddReview([FromForm] AddReviewViewModel model) { var userEmail = userManager.GetUserName(User); var user = userService.GetUserByUserEmail(userEmail); reviewService.AddReview(model.bookName, model.authorName, model.text, model.Title, user); return(View("DashboardView", "Dashboard")); }
public void AddReview_Null_ExpectArgumentNullException() { //Arrange var reviewService = new ReviewService(); //Act //Assert Assert.Throws <ArgumentNullException>(() => reviewService.AddReview(null)); }
public void AddReview_EmptyReviewerList_ExpectArgumentException() { //Arrange var reviewService = new ReviewService(); //Act //Assert Assert.Throws <ArgumentException>(() => reviewService.AddReview(new string[0])); }
public void AddReview(Review review) { Restaurant restaurant = GetRestaurantById(review.Restaurant.RestaurantId); review.Restaurant = restaurant; _reviewService.AddReview(review); restaurant.Reviews.Add(review); restaurant.CalcAvgRating(); _restaurantService.UpdateContext(); }
AddReview_FourReviewersTwoAvailableOneBusyAndOneSuspendedAndTheBusyOneIsAssignedTwice_ExpectSuspendedNotChangedTheAssignedOneHasReviewCountOfTwoAndZeroDebtAndTheOtherHaveZeroReviewsAndDebtOfTwo() { //Arrange var reviewContext = new ReviewContext(); var reviewService = new ReviewService(reviewContext); reviewService.RegisterReviewer("available-reviewer"); reviewService.RegisterReviewer("other-available-reviewer"); reviewService.RegisterReviewer("busy-reviewer"); reviewService.MakeReviewerBusy("busy-reviewer"); reviewService.RegisterReviewer("suspended-reviewer"); reviewService.SuspendReviewer("suspended-reviewer"); //Act reviewService.AddReview(new[] { "busy-reviewer" }); reviewService.AddReview(new[] { "busy-reviewer" }); //Assert var assignedReviewer = reviewService.GetReviewer("available-reviewer"); Assert.That(assignedReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(assignedReviewer.ReviewDebt, Is.EqualTo(2)); var availableReviewer = reviewService.GetReviewer("other-available-reviewer"); Assert.That(availableReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(availableReviewer.ReviewDebt, Is.EqualTo(2)); var busyReviewer = reviewService.GetReviewer("busy-reviewer"); Assert.That(busyReviewer.ReviewCount, Is.EqualTo(2)); Assert.That(busyReviewer.ReviewDebt, Is.EqualTo(0)); var suspendedReviewer = reviewService.GetReviewer("suspended-reviewer"); Assert.That(suspendedReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(suspendedReviewer.ReviewDebt, Is.EqualTo(0)); }
public void Add_PassedAReview_CallsAdd() { var service = new ReviewService(_moqRepo.Object); var r = new Review { revIndex = 5, RestaurantID = 1, Reviewer = "ZestReview", Description = "Zcity", Rating = 5 }; service.AddReview(r); _moqRepo.Verify(m => m.Add(It.IsAny <Review>()), Times.Once); }
public ResponseModel AddReview(RatingLocal rating) { var response = new ResponseModel { Success = false, Messages = new List <string>() }; if (rating == null || string.IsNullOrEmpty(rating.RatedByUserId) || rating.RatedToItem == 0) { response.Messages.Add("Data values are missing"); } else if (string.IsNullOrEmpty(rating.Comments) || rating.RatingStar < 0) { response.Messages.Add("Rating and comments can not be empty"); } else { try { var localUsermanager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>(); ApplicationUser user = localUsermanager.FindById(rating.RatedByUserId); if (user == null) { return(new ResponseModel { Success = false, Messages = new List <string> { "User not found with given user id" }, Data = rating }); } var responseRate = ReviewService.AddReview(rating); response.Data = rating; response.Messages.Add(responseRate.ToString()); response.Success = responseRate; } catch (Exception excep) { response.Messages.Add("Something bad happened."); } } return(response); }
//update or insert new review public HttpResponseMessage Post(ReviewDTO review) { if (ModelState.IsValid) { if (review.Id >= 0) { _service.EditReview(review); } else { _service.AddReview(review); return(Request.CreateResponse(HttpStatusCode.OK, review)); } } return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, this.ModelState)); }
public void AddReviewException() { // Arrange int userID = 1; int bookID = 1; var mockReviewRepo = new Mock <IReviewRepository>(); var mockMapper = new Mock <IMapper>(); mockReviewRepo.Setup(f => f.AddReview(userID, bookID, It.IsAny <ReviewViewModel>())).Throws(new Exception()); var service = new ReviewService(mockReviewRepo.Object, mockMapper.Object); // Act var returnedReview = service.AddReview(userID, bookID, It.IsAny <ReviewViewModel>()); }
public void AddReview_Should_AddReviewCorrect() { var db = new TFContext(DatabaseSimulator()); var userManager = new Mock <UserManager <User> >( Mock.Of <IUserStore <User> >(), null, null, null, null, null, null, null, null); var reviewServices = new ReviewService(db, userManager.Object); var user = new User() { Id = "UserId" }; db.Users.Add(user); db.SaveChanges(); reviewServices.AddReview("UserId", 1, "comment"); Assert.AreEqual(1, db.Reviews.Count(a => a.Comment == "comment")); }
public IActionResult AddReview(int rating, string comment, int bookId) { var uId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); DateTime date = DateTime.Now; var model = new ReviewInputModel() { BookId = bookId, Stars = rating, UserId = uId, UserName = User.FindFirst(ClaimTypes.Name).Value, CommentText = comment, time = date }; reviewService.AddReview(model); return(Ok()); }
public IActionResult AddReview([FromBody] Review review) { try { if (_reviewService.AddReview(review)) { return(this.Ok(new { success = true, message = "Review Added" })); } else { return(this.Ok(new { success = false, message = "Review not Added" })); } } catch (Exception e) { return(this.Ok(new { success = false, message = e.Message })); } }
public IActionResult Details(ReviewInputModel model) { //we use the details httppost to add a review to the database if (model.Comment == null) { model.Comment = "[User left no review]"; } if (!ModelState.IsValid) { return(View("/Book/Details/" + model.BookId)); } var claim = ((ClaimsIdentity)User.Identity).FindFirst(c => c.Type == "UserName")?.Value; var user = _userService.GetUserViewModelByString(claim); model.UserId = user.UserId; _reviewService.AddReview(model); return(RedirectToAction("Details", model.BookId)); }
public async void ShouldNotAddReviewIfReviewAlreadyExist() { var reviewModel = new ReviewModel() { Score = 5, Content = "Zawartość recenzji", MovieId = 10, }; string email = "*****@*****.**"; string username = "******"; string role = "user"; string userId = Guid.NewGuid().ToString(); var userDb = new User() { Id = userId, Email = "" }; var user = GetUserMock(email, username, role); var repo = new Mock <IRepository <Movie> >(); var reviewRepo = new Mock <IRepository <Review> >(); var store = new Mock <IUserStore <User> >(); var userManager = new Mock <UserManager <User> >(store.Object, null, null, null, null, null, null, null, null); repo.Setup(x => x.Exists(It.IsAny <Expression <Func <Movie, bool> > >())).Returns(Task.FromResult(true)); reviewRepo.Setup(x => x.Exists(It.IsAny <Expression <Func <Review, bool> > >())).Returns(Task.FromResult(true)); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).Returns(Task.FromResult(userDb)); var reviewService = new ReviewService(repo.Object, reviewRepo.Object, userManager.Object); var result = await reviewService.AddReview(reviewModel, user); string error = "Recenzja została już stworzona"; Assert.Contains(error, result.Error); }
AddReview_TwoReviewersPassedAndOneDoesntExist_ExpectReviewerNotRegisteredExceptionAndStatsNotUpdated() { //Arrange var reviewContext = new ReviewContext(); var reviewService = new ReviewService(reviewContext); reviewService.RegisterReviewer("assigned-reviewer"); reviewService.RegisterReviewer("other-available-reviewer"); reviewService.RegisterReviewer("busy-reviewer"); reviewService.MakeReviewerBusy("busy-reviewer"); reviewService.RegisterReviewer("suspended-reviewer"); reviewService.SuspendReviewer("suspended-reviewer"); //Act //Assert Assert.Throws <ReviewerNotRegisteredException>(() => reviewService.AddReview(new[] { "assigned-reviewer", "doesntExist" })); var assignedReviewer = reviewService.GetReviewer("assigned-reviewer"); Assert.That(assignedReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(assignedReviewer.ReviewDebt, Is.EqualTo(0)); var availableReviewer = reviewService.GetReviewer("other-available-reviewer"); Assert.That(availableReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(availableReviewer.ReviewDebt, Is.EqualTo(0)); var busyReviewer = reviewService.GetReviewer("busy-reviewer"); Assert.That(busyReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(busyReviewer.ReviewDebt, Is.EqualTo(0)); var suspendedReviewer = reviewService.GetReviewer("suspended-reviewer"); Assert.That(suspendedReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(suspendedReviewer.ReviewDebt, Is.EqualTo(0)); }
AddReview_SameReviewerPassedTwice_ExpectUpdatedOnlyOnce() { //Arrange var reviewContext = new ReviewContext(); var reviewService = new ReviewService(reviewContext); reviewService.RegisterReviewer("assigned-reviewer"); reviewService.RegisterReviewer("other-available-reviewer"); reviewService.RegisterReviewer("busy-reviewer"); reviewService.MakeReviewerBusy("busy-reviewer"); reviewService.RegisterReviewer("suspended-reviewer"); reviewService.SuspendReviewer("suspended-reviewer"); //Act reviewService.AddReview(new[] { "assigned-reviewer", "assigned-reviewer" }); //Assert var assignedReviewer = reviewService.GetReviewer("assigned-reviewer"); Assert.That(assignedReviewer.ReviewCount, Is.EqualTo(1)); Assert.That(assignedReviewer.ReviewDebt, Is.EqualTo(0)); var availableReviewer = reviewService.GetReviewer("other-available-reviewer"); Assert.That(availableReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(availableReviewer.ReviewDebt, Is.EqualTo(1)); var busyReviewer = reviewService.GetReviewer("busy-reviewer"); Assert.That(busyReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(busyReviewer.ReviewDebt, Is.EqualTo(1)); var suspendedReviewer = reviewService.GetReviewer("suspended-reviewer"); Assert.That(suspendedReviewer.ReviewCount, Is.EqualTo(0)); Assert.That(suspendedReviewer.ReviewDebt, Is.EqualTo(0)); }
public async void ShouldNotAddReviewIfUserDoesNotExist() { var reviewModel = new ReviewModel() { Score = 5, Content = "Zawartość recenzji", MovieId = 10, }; string email = "*****@*****.**"; string username = "******"; string role = "user"; string userId = Guid.NewGuid().ToString(); var userDb = new User() { Id = "", Email = "" }; var user = GetUserMock(email, username, role); var repo = new Mock <IRepository <Movie> >(); var reviewRepo = new Mock <IRepository <Review> >(); var store = new Mock <IUserStore <User> >(); var userManager = new Mock <UserManager <User> >(store.Object, null, null, null, null, null, null, null, null); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).Returns(Task.FromResult(userDb)); var reviewService = new ReviewService(repo.Object, reviewRepo.Object, userManager.Object); var result = await reviewService.AddReview(reviewModel, user); string error = "Autor poradnika nie został odnaleziony"; Assert.Contains(error, result.Error); }
public async Task AddReview_WithCorrectData_ShouldCreateSuccessfully() { string onFalseErrorMessage = "The method returned false on valid creation model."; string onNullErrorMessage = "The review was not added to the database."; var context = ApplicationDbContextInMemoryFactory.InitializeContext(); var reviewService = new ReviewService(context); ReviewBindingModel model = new ReviewBindingModel { ClientFullName = "TestClient", Comment = "TestComment", Rating = 5, }; var methodResult = await reviewService.AddReview(model); Assert.True(methodResult, onFalseErrorMessage); var reviewExists = context.Reviews.FirstOrDefaultAsync(x => x.ClientFullName == model.ClientFullName); AssertExtensions.NotNullWithMessage(reviewExists, onNullErrorMessage); }
public ReviewContract AddReview([FromBody] ReviewContract data) { return(service.AddReview(data)); }