コード例 #1
0
        public void PasswordCheckWithWrongPassword_ExecuteStoreCommand_ThrowsInvalidOperationException()
        {
            var model = new SignaturePasswordViewModel(CreatePasswordCheckStub());

            model.Password = WrongPassword;

            Assert.Throws <InvalidOperationException>(() => model.StorePasswordCommand.Execute(null));
        }
コード例 #2
0
        public void PasswordCheck_AfterExecuteSkipCommand_ResultIsSkip()
        {
            var model = new SignaturePasswordViewModel();

            model.SkipCommand.Execute(null);

            Assert.AreEqual(SignaturePasswordResult.Skip, model.Result);
        }
コード例 #3
0
        public void PasswordCheck_WithCorrectPassword_PasswordIsValid()
        {
            var model = new SignaturePasswordViewModel(CreatePasswordCheckStub());

            model.Password = CorrectPassword;

            Assert.IsTrue(model.StorePasswordCommand.CanExecute(null));
        }
コード例 #4
0
        public void PasswordCheck_AfterExecuteRemoveCommand_ResultIsRemove()
        {
            var model = new SignaturePasswordViewModel();

            model.RemovePasswordCommand.Execute(null);

            Assert.AreEqual(SignaturePasswordResult.RemovePassword, model.Result);
        }
コード例 #5
0
        public void SettingPassword_RaisesCanExecuteChanged()
        {
            var model = new SignaturePasswordViewModel();

            model.StorePasswordCommand.CanExecuteChanged += delegate { _eventWasRaised = true; };
            model.Password = "******";

            Assert.IsTrue(_eventWasRaised);
        }
コード例 #6
0
        public void ExecuteRemove_PasswordIsEmpty()
        {
            var model = new SignaturePasswordViewModel();

            model.Password = "******";

            model.RemovePasswordCommand.Execute(null);

            Assert.IsEmpty(model.Password, "Password is not empty after remove.");
        }
コード例 #7
0
        public void ExecuteSkip_PasswordIsEmpty()
        {
            var model = new SignaturePasswordViewModel();

            model.Password = "******";

            model.SkipCommand.Execute(null);

            Assert.IsEmpty(model.Password, "Password is not empty after skip.");
        }
コード例 #8
0
        public void ExecuteStore_PasswordIsSettedPassword()
        {
            var model = new SignaturePasswordViewModel(CreatePasswordCheckStub());

            model.Password = CorrectPassword;

            model.StorePasswordCommand.Execute(null);

            Assert.AreEqual(CorrectPassword, model.Password, "Password is not setted password after storing.");
        }
コード例 #9
0
        public void SettingPassword_RemovePasswordCommand_CallsCloseViewAction()
        {
            var model = new SignaturePasswordViewModel();

            model.CloseViewAction = delegate { _eventWasRaised = true; };

            model.RemovePasswordCommand.Execute(null);

            Assert.IsTrue(_eventWasRaised);
        }
コード例 #10
0
        public void PasswordCheckWithCorrectPassword_AfterExecuteStoreCommand_ResultIsStorePassword()
        {
            var model = new SignaturePasswordViewModel(CreatePasswordCheckStub());

            model.Password = CorrectPassword;

            model.StorePasswordCommand.Execute(null);

            Assert.AreEqual(SignaturePasswordResult.StorePassword, model.Result);
        }
コード例 #11
0
        public void SetInteraction_RaisesPropertyChanged()
        {
            var propertyChangedCalls = new List <string>();

            var viewModel   = new SignaturePasswordViewModel(null, new SignaturePasswordWindowTranslation());
            var interaction = new SignaturePasswordInteraction(PasswordMiddleButton.Skip, "");

            viewModel.PropertyChanged += (sender, args) => propertyChangedCalls.Add(args.PropertyName);

            viewModel.SetInteraction(interaction);

            var expectedProperties = new[] { nameof(viewModel.Interaction), nameof(viewModel.Password), nameof(viewModel.CanRemovePassword), nameof(viewModel.CanSkip) };

            CollectionAssert.AreEquivalent(expectedProperties, propertyChangedCalls);
        }
コード例 #12
0
        public void SettingPassword_StoreCommand_CallsCloseViewAction()
        {
            var pwd = MockRepository.GenerateStub <ISignaturePasswordCheck>();

            pwd.Stub(x => x.IsValidPassword("NewPassword")).Return(true);

            var model = new SignaturePasswordViewModel(pwd);

            model.CloseViewAction = delegate { _eventWasRaised = true; };
            model.Password        = "******";

            model.StorePasswordCommand.Execute(null);

            Assert.IsTrue(_eventWasRaised);
        }
コード例 #13
0
        private SignaturePasswordViewModel BuildViewModel(string expectedPassword = null)
        {
            var signaturePasswordCheck = Substitute.For <ISignaturePasswordCheck>();

            if (expectedPassword != null)
            {
                signaturePasswordCheck.IsValidPassword(Arg.Any <string>(), expectedPassword).Returns(true);
            }

            var viewModel   = new SignaturePasswordViewModel(signaturePasswordCheck, new SignaturePasswordWindowTranslation());
            var interaction = new SignaturePasswordInteraction(PasswordMiddleButton.Skip, "");

            viewModel.SetInteraction(interaction);

            return(viewModel);
        }
コード例 #14
0
        public SignaturePasswordWindow(SignaturePasswordViewModel viewModel)
        {
            _viewModel = viewModel;

            Loaded += (sender, e) =>
                      MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));

            DataContext = viewModel;

            InitializeComponent();

            // As password boxes do not allow bindings, we need to update it manually, when the password was set in the interaction
            viewModel.PropertyChanged += (sender, args) =>
            {
                if (args.PropertyName == nameof(_viewModel.Password))
                {
                    PasswordBox.Password = _viewModel.Password;
                }
            };
        }
コード例 #15
0
        public void PasswordCheck_WithWrongPassword_PasswordNotValid()
        {
            var model = new SignaturePasswordViewModel(CreatePasswordCheckStub());

            Assert.IsFalse(model.StorePasswordCommand.CanExecute(null));
        }
コード例 #16
0
        public void EmptyModel_ResultIsCancel()
        {
            var model = new SignaturePasswordViewModel();

            Assert.AreEqual(SignaturePasswordResult.Cancel, model.Result);
        }
コード例 #17
0
        public void EmptyModel_PasswordNotValid()
        {
            var model = new SignaturePasswordViewModel();

            Assert.IsFalse(model.StorePasswordCommand.CanExecute(null));
        }