예제 #1
0
        public void TestCustomCommand_Execute()
        {
            var fact      = Substitute.For <CustomCommandFactory>();
            var receiver  = Substitute.For <ICustomReceiver>();
            var validator = Substitute.For <ICustomValidator>();

            validator.IsValidArgument(receiver).Returns <bool>(true);
            CustomCommand cmd = fact.Create(receiver, validator) as CustomCommand;

            Assert.IsNotNull(cmd);

            object arg1 = new Object();

            validator.IsValidArgument(receiver).Returns <bool>(true);
            receiver.ClearReceivedCalls();
            cmd.Execute(arg1);
            var nn1 = receiver.ReceivedCalls().Count();

            Assert.IsTrue(receiver.ReceivedCalls().Count() == 1);

            object arg2 = null;

            validator.IsValidArgument(receiver).Returns <bool>(true);
            receiver.ClearReceivedCalls();
            cmd.Execute(arg2);
            var nn2 = receiver.ReceivedCalls().Count();

            Assert.IsTrue(receiver.ReceivedCalls().Count() == 0);
        }
        void CommandAction(object o)
        {
            if (IsValidatedBefore)
            {
                DoValidate();
            }

            if (IsValid)
            {
                if (CustomCommand != null)
                {
                    CustomCommand.Execute(null);
                }

                if (IsClosedAfter)
                {
                    DoClose();
                }
            }

            if (PostCommand != null)
            {
                PostCommand.Execute(null);
            }
        }
예제 #3
0
        void CommandAction(object o)
        {
            var canValidate = IsValidatedBefore;

            if (DataContext is ActivityDesignerViewModel activityDesignerViewModel)
            {
                canValidate &= !activityDesignerViewModel.IsMerge;
            }

            if (canValidate)
            {
                DoValidate();
            }

            if (IsValid)
            {
                CustomCommand?.Execute(null);

                if (IsClosedAfter)
                {
                    DoClose();
                }
            }

            PostCommand?.Execute(null);
        }
예제 #4
0
        protected override void OnClick()
        {
            var commandParameter = ReturnCommandParameter?.Invoke();
            var parameter        = new PluginMenuParameter(CallFrom, commandParameter);

            CustomCommand.Execute(parameter);

            base.OnClick();
        }