コード例 #1
0
        public void RegisterShould_CallProviderRegisterAndLoginUserCorrectly_WhenModelStateIsValid(string email,
                                                                                                   string username, string password, string firstName, string lastName, string phoneNumber)
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            authProviderMock.Setup(
                p =>
                p.RegisterAndLoginUser(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <bool>(),
                                       It.IsAny <bool>()))
            .Returns(IdentityResult.Success);

            var user = new User();

            userServiceMock.Setup(f => f.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(user);

            var model = new RegisterViewModel
            {
                Email    = email,
                Username = username,
                Password = password
            };

            controller.Register(model);

            authProviderMock.Verify(p => p.RegisterAndLoginUser(user, password, It.IsAny <bool>(), It.IsAny <bool>()));
        }
コード例 #2
0
        public void RegisterShould_ReturnRedirectToRouteResult_WhenResultSuccess(string email,
                                                                                 string username, string password, string firstName, string lastName, string phoneNumber)
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            authProviderMock.Setup(
                p =>
                p.RegisterAndLoginUser(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <bool>(),
                                       It.IsAny <bool>()))
            .Returns(IdentityResult.Success);

            var user = new User();


            userServiceMock.Setup(f => f.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(user);

            var model = new RegisterViewModel
            {
                Email    = email,
                Username = username,
                Password = password
            };

            controller
            .WithCallTo(c => c.Register(model))
            .ShouldRedirectTo((Web.Controllers.HomeController c) => c.Index());
        }
コード例 #3
0
        public void ProfileShould_ReturnDefaultView_WhenUserWasFound(string username)
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();
            var user             = new User()
            {
                UserName = username
            };
            var list = new List <User>()
            {
                user
            };

            userServiceMock.Setup(s => s.GetUserByUsername(username)).Returns(list.AsQueryable());
            InitializeMapper();
            authProviderMock.Setup(ap => ap.CurrentUserUsername).Returns(username);
            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);
            var model      = new ProfileViewModel()
            {
                IsCurrentUser = true
            };

            controller
            .WithCallTo(c => c.Profile(username))
            .ShouldRenderDefaultView();
        }
コード例 #4
0
        public void RegisterShould_ReturnViewWithModel_WhenModelIsNotValid(string email,
                                                                           string username, string password, string firstName, string lastName, string phoneNumber)
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            authProviderMock.Setup(
                p =>
                p.RegisterAndLoginUser(It.IsAny <User>(), It.IsAny <string>(), It.IsAny <bool>(),
                                       It.IsAny <bool>()))
            .Returns(IdentityResult.Success);

            var user = new User();

            var mockedFactory = new Mock <IUserService>();

            mockedFactory.Setup(f => f.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(user);

            var model = new RegisterViewModel
            {
                Email    = email,
                Username = username,
                Password = password
            };

            controller.ModelState.AddModelError("key", "message");

            controller
            .WithCallTo(c => c.Register(model))
            .ShouldRenderDefaultView()
            .WithModel <RegisterViewModel>(m => Assert.AreSame(model, m));
        }
コード例 #5
0
        public void ConstructorShould_SetPassedData_WhenDataIsNotNull()
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var mockedFactory    = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, mockedFactory.Object);

            Assert.IsNotNull(controller);
        }
コード例 #6
0
        public void RegisterShould_ReturnDefaultView()
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            controller
            .WithCallTo(c => c.Register())
            .ShouldRenderDefaultView();
        }
コード例 #7
0
        public void LoginShould_CallAuthProviderPropertyIsAuthenticated()
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            controller.Login();

            authProviderMock.Verify(p => p.IsAuthenticated, Times.Once);
        }
コード例 #8
0
        public void LogoffShould_ReturnRedirectToAction()
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            controller
            .WithCallTo(c => c.LogOff())
            .ShouldRedirectTo((Web.Controllers.HomeController homeController) => homeController.Index());
        }
コード例 #9
0
        public void LogoffShould_CallProviderMethodSignOut()
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            controller.LogOff();

            authProviderMock.Verify(p => p.SignOut(), Times.Once);
        }
コード例 #10
0
        public void ProfileShould_ReturnErrorView_WhenPassedUsernameIsNull()
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            InitializeMapper();
            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            controller
            .WithCallTo(c => c.Profile(null))
            .ShouldRenderView("Error");
        }
コード例 #11
0
        public void LoginShould_RedirectToActionHomeIndex_WhenProviderIsAuthenticatedIsTrue()
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            authProviderMock.Setup(p => p.IsAuthenticated).Returns(true);

            var result = controller.Login();

            Assert.IsInstanceOf <RedirectToRouteResult>(result);
        }
コード例 #12
0
        public void ProfileShould_CallUserServiceMethodGetUserByUsername_WhenPassedUsernameIsNotNull(string username)
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();

            InitializeMapper();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            controller.Profile(username);

            userServiceMock.Verify(s => s.GetUserByUsername(username), Times.Once);
        }
コード例 #13
0
        public void ProfileShould_ReturnErrorView_WhenUserWasNotFound(string username)
        {
            var authProviderMock = new Mock <IAuthenticationProvider>();
            var userServiceMock  = new Mock <IUserService>();
            var emptyList        = new List <User>();

            userServiceMock.Setup(s => s.GetUserByUsername(username)).Returns(emptyList.AsQueryable());
            InitializeMapper();

            var controller = new Web.Controllers.AccountController(authProviderMock.Object, userServiceMock.Object);

            controller
            .WithCallTo(c => c.Profile(username))
            .ShouldRenderView("Error");
        }