Beispiel #1
0
        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);
        }
Beispiel #3
0
 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()));
 }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        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"));
        }
Beispiel #7
0
        public void AddReview_Null_ExpectArgumentNullException()
        {
            //Arrange
            var reviewService = new ReviewService();

            //Act
            //Assert
            Assert.Throws <ArgumentNullException>(() => reviewService.AddReview(null));
        }
Beispiel #8
0
        public void AddReview_EmptyReviewerList_ExpectArgumentException()
        {
            //Arrange
            var reviewService = new ReviewService();

            //Act
            //Assert
            Assert.Throws <ArgumentException>(() => reviewService.AddReview(new string[0]));
        }
Beispiel #9
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();
        }
Beispiel #10
0
        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));
        }
Beispiel #11
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);
        }
Beispiel #13
0
 //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));
 }
Beispiel #14
0
        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 }));
     }
 }
Beispiel #18
0
        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));
        }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        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));
        }
Beispiel #21
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));
        }
Beispiel #22
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);
        }
Beispiel #24
0
 public ReviewContract AddReview([FromBody] ReviewContract data)
 {
     return(service.AddReview(data));
 }