コード例 #1
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);
        }
コード例 #2
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);
        }
コード例 #3
0
        public void RedirectToCorrectUrl_WhenCreateReviewIsSuccessful()
        {
            var args = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();
            var view = new Mock <ICreateReviewView>();
            var createReviewResult = new Mock <IDataModifiedResult>();

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

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(r => r.CreateReview(It.IsAny <IBeerReview>()))
            .Returns(createReviewResult.Object);
            var imgUpload = new Mock <IImageUploadService>();

            imgUpload.Setup(img => img.UploadImage(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns((string)null);
            var mockedResponse = new MockedHttpResponse();

            var presenter = new CreateReviewPresenter(reviewService.Object, imgUpload.Object, view.Object)
            {
                HttpContext = new MockedHttpContextBase(mockedResponse)
            };

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

            Assert.AreEqual("/Reviews/My", mockedResponse.RedirectUrl);
        }
コード例 #4
0
        public void Set_ViewErrorMessageText_WhenCreateReviewFails()
        {
            var expectedMessage    = this.Fixture.Create <string>();
            var args               = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();
            var view               = new Mock <ICreateReviewView>();
            var createReviewResult = new Mock <IDataModifiedResult>();

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

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(r => r.CreateReview(It.IsAny <IBeerReview>()))
            .Returns(createReviewResult.Object);
            var imgUpload = new Mock <IImageUploadService>();

            imgUpload.Setup(img => img.UploadImage(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns((string)null);

            var presenter = new CreateReviewPresenter(reviewService.Object, imgUpload.Object, view.Object);

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

            view.VerifySet(v => v.ErrorMessageText = expectedMessage, Times.Once);
        }
コード例 #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());
        }
コード例 #6
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());
        }
コード例 #7
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);
        }
コード例 #8
0
        public void Call_ReviewServiceCreateReviewMethodOnceWithCorrectParams()
        {
            var view = new Mock <ICreateReviewView>();
            var args = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();
            var createReviewResult = new Mock <IDataModifiedResult>();

            createReviewResult.Setup(r => r.Successful)
            .Returns(false);
            createReviewResult.Setup(r => r.Errors)
            .Returns(new string[0]);
            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(r => r.CreateReview(It.IsAny <IBeerReview>()))
            .Returns(createReviewResult.Object);
            var imgUpload = new Mock <IImageUploadService>();

            imgUpload.Setup(img => img.UploadImage(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()))
            .Returns((string)null);

            var presenter = new CreateReviewPresenter(reviewService.Object, imgUpload.Object, view.Object);

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

            reviewService.Verify(s => s.CreateReview(args.BeerReview), Times.Once);
        }
コード例 #9
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);
        }
コード例 #10
0
        public void CallReviewServiceGetByIdMethodOnceWithCorrectParams()
        {
            var args          = MockedEventArgsGenerator.GetIdentifiableEventArgs <int>();
            var reviewService = new Mock <IBeerReviewService>();
            var view          = new Mock <IReviewDetailsView>();
            var presenter     = new DefaultPresenter(reviewService.Object, view.Object);

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

            reviewService.Verify(s => s.GetById(args.Id), Times.Once);
        }
コード例 #11
0
        public void Call_UserServiceUpdateUserMethodOnceWithCorrectParams()
        {
            var args        = MockedEventArgsGenerator.GetMockedUserUpdateEventArgs();
            var view        = new Mock <IManageUsersView>();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.UpdateUser(args.Id, args.Email, args.UserName, args.IsConfirmed))
            .Returns(IdentityResult.Success);

            var sut = new ManageUsersPresenter(userService.Object, view.Object);

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

            userService.Verify(s => s.UpdateUser(args.Id, args.Email, args.UserName, args.IsConfirmed), Times.Once);
        }
コード例 #12
0
        public void ChangeSuccessVisibility_WhenConfirmationSucceeded()
        {
            var mockedView  = new Mock <IConfirmView>();
            var mockedArgs  = MockedEventArgsGenerator.GetConfirmEventArgs();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.ConfirmEmail(mockedArgs.UserId, mockedArgs.Code))
            .Returns(IdentityResult.Success);

            var presenter = new ConfirmPresenter(userService.Object, mockedView.Object);

            mockedView.Raise(x => x.OnSubmit += null, mockedView.Object, mockedArgs);

            mockedView.VerifySet(v => v.SuccessPanelVisible = true, Times.Once);
        }
コード例 #13
0
        public void Call_UserServiceRemoveAdminMethodOnceWithCorrectParams()
        {
            var args        = MockedEventArgsGenerator.GetIdentifiableEventArgs <string>();
            var view        = new Mock <IManageUsersView>();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RemoveAdmin(args.Id))
            .Returns(IdentityResult.Success);

            var sut = new ManageUsersPresenter(userService.Object, view.Object);

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

            userService.Verify(s => s.RemoveAdmin(args.Id), Times.Once);
        }
コード例 #14
0
        public void CallBreweryServiceSearchMethodOnceWithCorrectParams()
        {
            var viewModel = new MockedBreweriesViewModel();
            var view      = new Mock <IBreweriesView>();

            view.Setup(v => v.Model)
            .Returns(viewModel);
            var service   = new Mock <IBreweryService>();
            var args      = MockedEventArgsGenerator.GetSearchEventArgs();
            var presenter = new BreweriesPresenter(service.Object, view.Object);

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

            service.Verify(s => s.Search(args.Pattern), Times.Once);
        }
コード例 #15
0
        public void Set_ViewSuccessMessage_WhenResultSucceeds()
        {
            var args        = MockedEventArgsGenerator.GetIdentifiableEventArgs <string>();
            var view        = new Mock <IManageUsersView>();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.DisableUser(args.Id))
            .Returns(IdentityResult.Success);

            var sut = new ManageUsersPresenter(userService.Object, view.Object);

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

            view.VerifySet(v => v.SuccessMessageVisible = true);
            view.VerifySet(v => v.SuccessMessageText    = It.IsAny <string>());
        }
コード例 #16
0
        public void CallConfirmEmailMethod_WhenUserDataIsValid()
        {
            var mockedView = new Mock <IConfirmView>();
            var mockedArgs = MockedEventArgsGenerator.GetConfirmEventArgs();

            var userService = new Mock <IUserService>();

            userService.Setup(s => s.ConfirmEmail(mockedArgs.UserId, mockedArgs.Code))
            .Returns(IdentityResult.Failed(new string[1]));

            var presenter = new ConfirmPresenter(userService.Object, mockedView.Object);

            mockedView.Raise(x => x.OnSubmit += null, mockedView.Object, mockedArgs);

            userService.Verify(f => f.ConfirmEmail(mockedArgs.UserId, mockedArgs.Code), Times.Once());
        }
コード例 #17
0
        public void Set_ViewErrorMessage_WhenResultFails()
        {
            var args        = MockedEventArgsGenerator.GetIdentifiableEventArgs <string>();;
            var view        = new Mock <IManageUsersView>();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.RemoveAdmin(args.Id))
            .Returns(IdentityResult.Failed());

            var sut = new ManageUsersPresenter(userService.Object, view.Object);

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

            view.VerifySet(v => v.ErrorMessageVisible = true);
            view.VerifySet(v => v.ErrorMessageText    = It.IsAny <string>());
        }
コード例 #18
0
        public void Set_ViewErrorMessage_WhenResultFails()
        {
            var args        = MockedEventArgsGenerator.GetMockedUserUpdateEventArgs();
            var view        = new Mock <IManageUsersView>();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.UpdateUser(args.Id, args.Email, args.UserName, args.IsConfirmed))
            .Returns(IdentityResult.Failed());

            var sut = new ManageUsersPresenter(userService.Object, view.Object);

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

            view.VerifySet(v => v.ErrorMessageVisible = true);
            view.VerifySet(v => v.ErrorMessageText    = It.IsAny <string>());
        }
コード例 #19
0
        public void SetViewProperties_WhenReviewIsNotFound()
        {
            var args       = MockedEventArgsGenerator.GetIdentifiableEventArgs <int>();
            var expectedId = this.Fixture.Create <int>();

            var reviewService = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetById(expectedId))
            .Returns((IBeerReview)null);

            var view      = new Mock <IReviewDetailsView>();
            var presenter = new DefaultPresenter(reviewService.Object, view.Object);

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

            view.VerifySet(v => v.NotFoundVisible = true, Times.Once);
        }
コード例 #20
0
        public void ChangeMessagesVisibility_WhenUserIsNotConfirmed()
        {
            const string Email = "*****@*****.**";

            var mockedView  = new Mock <IConfirmView>();
            var mockedArgs  = MockedEventArgsGenerator.GetConfirmEventArgs();
            var userService = new Mock <IUserService>();

            userService.Setup(s => s.ConfirmEmail(mockedArgs.UserId, mockedArgs.Code))
            .Returns(IdentityResult.Failed(Email));

            var presenter = new ConfirmPresenter(userService.Object, mockedView.Object);

            mockedView.Raise(x => x.OnSubmit += null, mockedView.Object, mockedArgs);

            mockedView.VerifySet(v => v.SuccessPanelVisible = false, Times.Once);
            mockedView.VerifySet(v => v.ErrorPanelVisible   = true, Times.Once);
        }
コード例 #21
0
        public void Call_ImgServiceUploadImageMethodOnceWithCorrectParams_WhenImageIsNotNull()
        {
            var args               = MockedEventArgsGenerator.GetBeerReviewInfoEventArgs();
            var view               = new Mock <ICreateReviewView>();
            var imgUpload          = new Mock <IImageUploadService>();
            var createReviewResult = new Mock <IDataModifiedResult>();

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

            reviewService.Setup(r => r.CreateReview(It.IsAny <IBeerReview>()))
            .Returns(createReviewResult.Object);

            var presenter = new CreateReviewPresenter(reviewService.Object, imgUpload.Object, view.Object);

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

            imgUpload.Verify(i => i.UploadImage(args.Image, Constants.DefaultThumbnailSizePx, Constants.DefaultThumbnailSizePx), Times.Once);
        }
コード例 #22
0
        public void SetResultFromServiceToViewModel()
        {
            var expectedBreweries = new List <IBrewery>();

            var viewModel = new MockedBreweriesViewModel();
            var view      = new Mock <IBreweriesView>();

            view.Setup(v => v.Model)
            .Returns(viewModel);
            var args    = MockedEventArgsGenerator.GetSearchEventArgs();
            var service = new Mock <IBreweryService>();

            service.Setup(s => s.Search(args.Pattern))
            .Returns(expectedBreweries);
            var presenter = new BreweriesPresenter(service.Object, view.Object);

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

            Assert.AreSame(expectedBreweries, view.Object.Model.Breweries);
        }
コード例 #23
0
        public void SetViewProperties_WhenReviewIsFound()
        {
            var args = MockedEventArgsGenerator.GetIdentifiableEventArgs <int>();
            var expectedBeerReview = new Mock <IBeerReview>();
            var reviewService      = new Mock <IBeerReviewService>();

            reviewService.Setup(s => s.GetById(args.Id))
            .Returns(expectedBeerReview.Object);

            var viewModel = new MockedBeerReviewViewModel();
            var view      = new Mock <IReviewDetailsView>();

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

            var presenter = new DefaultPresenter(reviewService.Object, view.Object);

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

            view.VerifySet(v => v.NotFoundVisible = false, Times.Once);
            Assert.AreSame(expectedBeerReview.Object, view.Object.Model.Review);
        }
コード例 #24
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);
        }