コード例 #1
0
        public async void TestAdminLoginValidModelStateButNotAnExistingUser()
        {
            MockStoreContexts mocks = new MockStoreContexts();

            mocks.UserManager.Setup(x => x.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);
            mocks.UserManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(mocks.User);
            mocks.UserManager.Setup(x => x.IsInRoleAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()))
            .ReturnsAsync(true);
            mocks.UserManager.Setup(x => x.AddToRoleAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            mocks.SignInManager.Setup(x => x.PasswordSignInAsync(
                                          It.IsAny <string>(), It.IsAny <string>(),
                                          It.IsAny <bool>(), It.IsAny <bool>()))
            .ReturnsAsync(Microsoft.AspNetCore.Identity.SignInResult.Failed);

            await mocks.UserManager.Object.CreateAsync(mocks.User, "Abcdefg1!");

            await mocks.UserManager.Object.AddToRoleAsync(mocks.User, ApplicationRoles.Admin);

            AdminLoginModel alm = new AdminLoginModel(mocks.UserManager.Object,
                                                      mocks.SignInManager.Object,
                                                      mocks.Configuration.Object)
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            MockValidation.CheckValidation(alm);
            var result = alm.OnPost().Result;

            Assert.IsType <PageResult>(result);
        }
コード例 #2
0
        public void ChangePasswordConfirmPasswordGetterAndSetter()
        {
            MockStoreContexts    mocks = new MockStoreContexts();
            Change_PasswordModel cpm   = new Change_PasswordModel(mocks.UserManager.Object, mocks.SignInManager.Object);

            Assert.Null(cpm.ConfirmPassword);
            cpm.ConfirmPassword = "******";
            Assert.Equal("Abcdefg1!", cpm.ConfirmPassword);
        }
コード例 #3
0
        public void ChangePasswordNameGetterAndSetter()
        {
            MockStoreContexts    mocks = new MockStoreContexts();
            Change_PasswordModel cpm   = new Change_PasswordModel(mocks.UserManager.Object, mocks.SignInManager.Object);

            Assert.Null(cpm.Name);
            cpm.Name = "*****@*****.**";
            Assert.Equal("*****@*****.**", cpm.Name);
        }
コード例 #4
0
        public void AdminLoginPasswordGetterAndSetter()
        {
            MockStoreContexts mocks = new MockStoreContexts();
            AdminLoginModel   alm   = new AdminLoginModel(mocks.UserManager.Object,
                                                          mocks.SignInManager.Object,
                                                          mocks.Configuration.Object);

            Assert.Null(alm.Password);
            alm.Password = "******";
            Assert.Equal("Abcdefg1!", alm.Password);
        }
コード例 #5
0
        public void AdminLoginEmailGetterAndSetter()
        {
            MockStoreContexts mocks = new MockStoreContexts();
            AdminLoginModel   alm   = new AdminLoginModel(mocks.UserManager.Object,
                                                          mocks.SignInManager.Object,
                                                          mocks.Configuration.Object);

            Assert.Null(alm.Email);
            alm.Email = "*****@*****.**";
            Assert.Equal("*****@*****.**", alm.Email);
        }
コード例 #6
0
        public void LogOutFunctionsProperly()
        {
            MockStoreContexts mock = new MockStoreContexts();
            LogoutModel       lm   = new LogoutModel(mock.SignInManager.Object);

            mock.SignInManager.Setup(x => x.SignOutAsync())
            .Returns(Task.CompletedTask);

            var result = lm.OnGet().Result;
            RedirectToPageResult check = (RedirectToPageResult)result;

            Assert.Equal("/", check.PageName);
        }
コード例 #7
0
        public void TestPasswordAndConfirmPasswordDoNotMatch()
        {
            MockStoreContexts    mocks = new MockStoreContexts();
            Change_PasswordModel cpm   = new Change_PasswordModel(mocks.UserManager.Object, mocks.SignInManager.Object)
            {
                Password        = "******",
                ConfirmPassword = "******"
            };

            var result = cpm.OnPostAsync().Result;

            Assert.IsType <PageResult>(result);
        }
コード例 #8
0
        public void TestPasswordAndConfirmPasswordDoMatchButInvalidModel()
        {
            MockStoreContexts    mocks = new MockStoreContexts();
            Change_PasswordModel cpm   = new Change_PasswordModel(mocks.UserManager.Object, mocks.SignInManager.Object)
            {
                Password        = "******",
                ConfirmPassword = "******"
            };

            MockValidation.CheckValidation(cpm);
            var result = cpm.OnPostAsync().Result;

            Assert.IsType <PageResult>(result);
        }
コード例 #9
0
        public void TestPasswordMatchingAndValidModelStateButNoUserIsFound()
        {
            MockStoreContexts    mocks = new MockStoreContexts();
            Change_PasswordModel cpm   = new Change_PasswordModel(mocks.UserManager.Object, mocks.SignInManager.Object)
            {
                Name            = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };

            mocks.UserManager.Setup(x => x.FindByNameAsync(It.IsAny <string>()))
            .ReturnsAsync((ApplicationUser)null);

            MockValidation.CheckValidation(cpm);
            var result = cpm.OnPostAsync().Result;

            Assert.IsType <PageResult>(result);
        }
コード例 #10
0
        public void TestPasswordMatchingAndValidModelStateAndUserButFailedToUpdate()
        {
            MockStoreContexts    mocks = new MockStoreContexts();
            Change_PasswordModel cpm   = new Change_PasswordModel(mocks.UserManager.Object, mocks.SignInManager.Object)
            {
                Name            = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };

            mocks.UserManager.Setup(x => x.FindByNameAsync(It.IsAny <string>()))
            .ReturnsAsync(new ApplicationUser {
                PasswordHash = "abcdefg"
            });
            mocks.UserManager.Setup(x => x.UpdateAsync(It.IsAny <ApplicationUser>()))
            .ReturnsAsync(IdentityResult.Failed());

            MockValidation.CheckValidation(cpm);
            var result = cpm.OnPostAsync().Result;

            Assert.IsType <PageResult>(result);
        }
コード例 #11
0
        public async void TestAdminLoginValidStateAndAdminUsesDefaultPassword()
        {
            MockStoreContexts mocks = new MockStoreContexts();

            mocks.UserManager.Setup(x => x.CreateAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);
            mocks.UserManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>()))
            .ReturnsAsync(mocks.User);
            mocks.UserManager.Setup(x => x.IsInRoleAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()))
            .ReturnsAsync(true);
            mocks.UserManager.Setup(x => x.AddToRoleAsync(It.IsAny <ApplicationUser>(), It.IsAny <string>()))
            .ReturnsAsync(IdentityResult.Success);

            mocks.SignInManager.Setup(x => x.PasswordSignInAsync(
                                          It.IsAny <string>(), It.IsAny <string>(),
                                          It.IsAny <bool>(), It.IsAny <bool>()))
            .ReturnsAsync(Microsoft.AspNetCore.Identity.SignInResult.Success);

            mocks.Configuration.Setup(x => x[It.IsAny <string>()])
            .Returns("Test2!");
            await mocks.UserManager.Object.CreateAsync(mocks.User, "Test2!");

            await mocks.UserManager.Object.AddToRoleAsync(mocks.User, ApplicationRoles.Admin);

            AdminLoginModel alm = new AdminLoginModel(mocks.UserManager.Object,
                                                      mocks.SignInManager.Object,
                                                      mocks.Configuration.Object)
            {
                Email    = "*****@*****.**",
                Password = "******"
            };

            MockValidation.CheckValidation(alm);
            var result = alm.OnPost().Result;
            RedirectToPageResult check = (RedirectToPageResult)result;

            Assert.Equal("/Change_Password", check.PageName);
        }
コード例 #12
0
        public void TestPasswordMatchingAndValidModelStateAndUserAndUpdates()
        {
            MockStoreContexts    mocks = new MockStoreContexts();
            Change_PasswordModel cpm   = new Change_PasswordModel(mocks.UserManager.Object, mocks.SignInManager.Object)
            {
                Name            = "*****@*****.**",
                Password        = "******",
                ConfirmPassword = "******"
            };

            mocks.UserManager.Setup(x => x.FindByNameAsync(It.IsAny <string>()))
            .ReturnsAsync(new ApplicationUser {
                PasswordHash = "abcdefg"
            });
            mocks.UserManager.Setup(x => x.UpdateAsync(It.IsAny <ApplicationUser>()))
            .ReturnsAsync(IdentityResult.Success);

            MockValidation.CheckValidation(cpm);
            var result = cpm.OnPostAsync().Result;
            RedirectToPageResult check = (RedirectToPageResult)result;

            Assert.Equal("/Dashboard", check.PageName);
        }