Example #1
0
        public void Set_ModelReviewsCorrectly()
        {
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(expectedReviews);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            Assert.AreSame(view.Object.Model.Reviews, expectedReviews);
        }
Example #2
0
        public void Call_GetReviewsForUserWithCorrectParamsOnce()
        {
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);
            view.SetupSet(v => v.SuccessMessageVisible = false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(args.UserId, args.StartRowIndex, args.PageSize))
            .Returns(expectedReviews);


            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            reviewService.Verify(r => r.GetReviewsForUser(args.UserId, args.StartRowIndex, args.PageSize), Times.Once());
        }
Example #3
0
        public void Set_ViewModelTotalCountPropertyToReturnValueFromCountUserReviews()
        {
            var expectedTotalCount = this.Fixture.Create <int>();
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);
            view.SetupSet(v => v.SuccessMessageVisible = false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(expectedReviews);
            reviewService.Setup(s => s.CountUserReviews(It.IsAny <string>()))
            .Returns(expectedTotalCount);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            Assert.AreEqual(expectedTotalCount, viewModel.TotalCount);
        }
Example #4
0
        public void CatchUpdateExceptionAndSetViewProperties()
        {
            var expectedMessage = this.Fixture.Create <string>();

            var args = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();

            var view = new Mock <IMyReviewsView>();

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);
            result.Setup(r => r.Errors).Returns(new[] { expectedMessage });

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.UpdateReview(args.BeerReview))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewUpdate += null, view.Object, args);

            view.VerifySet(v => v.SuccessMessageText    = expectedMessage, Times.Once);
            view.VerifySet(v => v.SuccessMessageVisible = true, Times.Once);
        }
Example #5
0
        public void Hide_SuccessMessage()
        {
            var args            = MockedEventArgsGenerator.GetUserReviewsEventArgs();
            var expectedReviews = new List <BeerReview>();
            var viewModel       = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };
            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);
            view.SetupSet(v => v.SuccessMessageVisible = false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetReviewsForUser(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns(expectedReviews);
            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.Initialized += null, view.Object, args);

            view.VerifySet(v => v.SuccessMessageVisible = false, Times.Once());
        }
Example #6
0
        public void SetViewPropertiesCorrectly()
        {
            const string ExpectedMessage = "Review successfully updated!";
            var          args            = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();

            var view = new Mock <IMyReviewsView>();

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(true);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.UpdateReview(args.BeerReview))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewUpdate += null, view.Object, args);

            view.VerifySet(v => v.SuccessMessageText    = ExpectedMessage, Times.Once);
            view.VerifySet(v => v.SuccessMessageVisible = true, Times.Once);
        }
Example #7
0
        public void SetViewProperties_WhenResultIsNotSuccessfull()
        {
            var expectedMessage = this.Fixture.Create <string>();

            var reviewId = this.Fixture.Create <int>();

            var review = new Mock <IBeerReview>();

            review.Setup(r => r.Id)
            .Returns(reviewId);

            var args = new Mock <IBeerReviewInfoEventArgs>();

            args.Setup(a => a.BeerReview)
            .Returns(review.Object);

            var expectedReviews = new List <IBeerReview>()
            {
                review.Object
            };
            var viewModel = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };

            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);
            result.Setup(r => r.Errors).Returns(new[] { expectedMessage });

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.DeleteReview(reviewId))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewDelete += null, view.Object, args.Object);

            view.VerifySet(v => v.SuccessMessageText    = expectedMessage, Times.Once);
            view.VerifySet(v => v.SuccessMessageVisible = true, Times.Once);
        }
Example #8
0
        public void FilterViewModelsReviewsByDeletion()
        {
            var reviewId = this.Fixture.Create <int>();

            var review = new Mock <IBeerReview>();

            review.Setup(r => r.Id)
            .Returns(reviewId);
            review.Setup(r => r.IsDeleted)
            .Returns(true);

            var args = new Mock <IBeerReviewInfoEventArgs>();

            args.Setup(a => a.BeerReview)
            .Returns(review.Object);

            var expectedReviews = new List <IBeerReview>()
            {
                review.Object
            };
            var viewModel = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };

            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(true);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.DeleteReview(reviewId))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewDelete += null, view.Object, args.Object);

            CollectionAssert.IsEmpty(viewModel.Reviews);
        }
Example #9
0
        public void CallServiceDeleteReviewMethodOnce_WithCorrectParameter()
        {
            var reviewId = this.Fixture.Create <int>();

            var review = new Mock <IBeerReview>();

            review.Setup(r => r.Id)
            .Returns(reviewId);
            var args = new Mock <IBeerReviewInfoEventArgs>();

            args.Setup(a => a.BeerReview)
            .Returns(review.Object);

            var expectedReviews = new List <IBeerReview>()
            {
                review.Object
            };
            var viewModel = new ReviewsViewModel()
            {
                Reviews = expectedReviews
            };

            var view = new Mock <IMyReviewsView>();

            view.SetupGet(v => v.Model).Returns(viewModel);

            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.DeleteReview(reviewId))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewDelete += null, view.Object, args.Object);

            reviewService.Verify(s => s.DeleteReview(reviewId), Times.Once);
        }
Example #10
0
        public void CallUpdateReviewMethodOnce()
        {
            var args   = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();
            var view   = new Mock <IMyReviewsView>();
            var result = new Mock <IDataModifiedResult>();

            result.Setup(r => r.Successful).Returns(false);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.UpdateReview(args.BeerReview))
            .Returns(result.Object);

            var httpResponse = new MockedHttpResponse();
            var presenter    = new MyReviewsPresenter(reviewService.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(httpResponse)
            };

            view.Raise(v => v.ReviewUpdate += null, view.Object, args);

            reviewService.Verify(s => s.UpdateReview(args.BeerReview), Times.Once);
        }