public void LoginTest1()
        {
            // Setup
            var formsAuthenticationMock = new Mock<IFormsAuthentication>();
            var membershipProviderMock = new Mock<MembershipProvider>();

            AccountController target = new AccountController(formsAuthenticationMock.Object, membershipProviderMock.Object);
            target.SetFakeControllerContext();

            // Execute
            ViewResult result = target.Login(null, null, null) as ViewResult;

            // Verify
            ViewDataDictionary viewData = result.ViewData;
            Assert.AreEqual("Login", viewData["Title"]);
            Assert.AreEqual(1, viewData.Count);
        }
        public void LoginTest2()
        {
            // Setup
            var formsAuthenticationMock = new Mock<IFormsAuthentication>();
            var membershipProviderMock = new Mock<MembershipProvider>();

            formsAuthenticationMock.Expect(f => f.SetAuthCookie(It.IsAny<string>(), true)).AtMostOnce();

            membershipProviderMock
                .Expect(m => m.ValidateUser(It.IsAny<string>(), It.IsAny<string>()))
                .Returns(false);

            AccountController target = new AccountController(formsAuthenticationMock.Object, membershipProviderMock.Object);
            target.SetFakeControllerContext();
            target.HttpContext.Request.SetHttpMethodResult("POST");

            // Execute
            ViewResult result = target.Login(null, null, null) as ViewResult;

            // Verify
            ViewDataDictionary viewData = result.ViewData;
            Assert.AreEqual("Login", viewData["Title"]);
            Assert.IsFalse(viewData.ModelState.IsValid);
            Assert.AreEqual(1, viewData.ModelState.Count);
        }
        public void LoginTest3()
        {
            // Setup
            var formsAuthenticationMock = new Mock<IFormsAuthentication>();
            var membershipProviderMock = new Mock<MembershipProvider>();

            formsAuthenticationMock.Expect(f => f.SetAuthCookie(It.IsAny<string>(), true)).AtMostOnce();

            membershipProviderMock
                .Expect(m => m.ValidateUser(It.IsAny<string>(), It.IsAny<string>()))
                .Returns(true);

            AccountController target = new AccountController(formsAuthenticationMock.Object, membershipProviderMock.Object);
            target.SetFakeControllerContext();
            target.HttpContext.Request.SetHttpMethodResult("POST");

            // Execute
            string username = "******";
            string password = "******";
            Nullable<bool> rememberMe = true;

            // Execute
            RedirectToRouteResult result = target.Login(username, password, rememberMe) as RedirectToRouteResult;
        }