public void ResetPasswordWithoutPermission()
        {
            ExternalFileSecurityManager manager = new ExternalFileSecurityManager();
            string session = InitialiseManagerAndLogin(manager);

            Assert.That(delegate { manager.ResetPassword(session, "johndoe", "whoami"); },
                        Throws.TypeOf <PermissionDeniedException>());
        }
        public void ChangePasswordWithWrongPassword()
        {
            ExternalFileSecurityManager manager = new ExternalFileSecurityManager();
            string session = InitialiseManagerAndLogin(manager);

            Assert.That(delegate { manager.ChangePassword(session, "wrong", "whoami"); },
                        Throws.TypeOf <SecurityException>());
        }
        public void ResetPasswordForUnknownSession()
        {
            ExternalFileSecurityManager manager = new ExternalFileSecurityManager();
            string session = InitialiseManagerAndLogin(manager);

            Assert.That(delegate { manager.ResetPassword("unknown", "johndoe", "whoami"); },
                        Throws.TypeOf <SessionInvalidException>());
        }
        public void ResetPasswordWithValidDetails()
        {
            ExternalFileSecurityManager manager = new ExternalFileSecurityManager();
            string session = InitialiseManagerAndLogin(manager, "janedoe");

            manager.ResetPassword(session, "johndoe", "whoami");

            string actual   = TrimWhitespace(File.ReadAllText(GenerateUsersFileName()));
            string expected = GenerateUserFileContents("whoami");

            Assert.AreEqual(expected, actual, "File contents do not match");
        }
        public void ManagerLoadsUsers()
        {
            ExternalFileSecurityManager manager = new ExternalFileSecurityManager();

            manager.Files = new string[]
            {
                GenerateUsersFile()
            };
            manager.Initialise();
            IAuthentication actualUser = manager.RetrieveUser("johndoe");

            Assert.IsNotNull(actualUser, "User not found");
        }
        private string InitialiseManagerAndLogin(ExternalFileSecurityManager manager, string userName)
        {
            manager.Files = new string[]
            {
                GenerateUsersFile()
            };
            manager.Initialise();
            LoginRequest credentials = new LoginRequest(userName);

            credentials.AddCredential(LoginRequest.PasswordCredential, "whoareyou");
            string session = manager.Login(credentials);

            Assert.IsFalse(string.IsNullOrEmpty(session), "Session has not been allocated");
            return(session);
        }
        public void CanLogin()
        {
            ExternalFileSecurityManager manager = new ExternalFileSecurityManager();

            InitialiseManagerAndLogin(manager);
        }
 private string InitialiseManagerAndLogin(ExternalFileSecurityManager manager)
 {
     return(InitialiseManagerAndLogin(manager, "johndoe"));
 }