private bool CallEventInvocatorAndCheckIfEventWasInvoked( bool initialCondition, bool changedCondition )
        {
            var eventRaised = false;
            var command = new ManualRaiseCommand( () => { }, () => initialCondition );
            command.CanExecuteChanged += ( sender, args ) => eventRaised = true;
            initialCondition = changedCondition;
            command.RaiseCanExecuteChanged();

            return eventRaised;
        }
        private static bool CallEventInvocatorAndCheckIfEventWasInvoked(bool initialCondition, bool changedCondition)
        {
            var eventRaised = false;
            var command     = new ManualRaiseCommand(() => { }, () => initialCondition);

            command.CanExecuteChanged += (sender, args) => eventRaised = true;
            initialCondition           = changedCondition;
            command.RaiseCanExecuteChanged();

            return(eventRaised);
        }
        public void CanExecuteIsFalseWhenConditionNotSatisfied()
        {
            var command = new ManualRaiseCommand(() => { }, () => false);

            Assert.IsFalse(command.CanExecute());
        }
        public void CanExecuteIsTrueWhenConditionIsSatisfied()
        {
            var command = new ManualRaiseCommand(() => { }, () => true);

            Assert.IsTrue(command.CanExecute());
        }
        public void CanExecuteIsTrueWhenConditionIsSatisfied()
        {
            var command = new ManualRaiseCommand( () => { }, () => true );

            Assert.IsTrue( command.CanExecute() );
        }
        public void CanExecuteIsFalseWhenConditionNotSatisfied()
        {
            var command = new ManualRaiseCommand( () => { }, () => false );

            Assert.IsFalse( command.CanExecute() );
        }