public void LogoutShouldReturnRedirectResult()
        {
            // Arrange
            var controller = new SocialConnectedAuthenticationController(authenticationManager, connectUserManager);

            // Act
            var result = controller.Logout();

            // Assert
            Assert.IsType<RedirectResult>(result);
        }
        public void LogoutShouldCallAuthenticationManagerLogout()
        {
            // Arrange
            var controller = new SocialConnectedAuthenticationController(authenticationManager, connectUserManager);

            // Act
            controller.Logout();

            // Assert
            A.CallTo(() => authenticationManager.Logout())
                .MustHaveHappened();
        }
        public void LoginShouldAttachUserWhenAuthenticated()
        {
            // Arrange
            var isAuthenticated = true;
            var controller = new SocialConnectedAuthenticationController(authenticationManager, connectUserManager);
            A.CallTo(() => authenticationManager.GetActiveUser())
                .Returns<User>(new TestUser(isAuthenticated));

            // Act
            controller.Login(networkName);

            // Assert
            A.CallTo(() => connectUserManager.AttachUser(networkName, true, null))
                .MustHaveHappened();
        }
        public void LogoutShouldRedirectToSiteRoot()
        {
            // Arrange
            var controller = new SocialConnectedAuthenticationController(authenticationManager, connectUserManager);

            // Act
            var result = controller.Logout();

            // Assert
            Assert.Equal(((RedirectResult)result).Url, "/");
        }