예제 #1
0
        public virtual void TwoExecute()
        {
            var vm = CommandTests_a.Create();
            var bt = BindingTestHelper.BindAssert <Button>("Button", "Command", "{b:DXCommand Execute='Do1(); Do2()'}", null, vm);

            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(1, vm.Do1Counter);
            Assert.AreEqual(1, vm.Do2Counter);
            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(2, vm.Do1Counter);
            Assert.AreEqual(2, vm.Do2Counter);

            vm = CommandTests_a.Create();
            bt = BindingTestHelper.BindAssert <Button>("Button", "Command", "{b:DXCommand Execute='Do1(); Do2()', CanExecute='CanDo1() &amp;&amp; CanDo2()'}", null, vm);
            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            Assert.AreEqual(2, vm.CanDo1Counter);
            Assert.AreEqual(0, vm.CanDo2Counter);
            vm.CanDo1Value = true;
            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            Assert.AreEqual(3, vm.CanDo1Counter);
            Assert.AreEqual(1, vm.CanDo2Counter);
            vm.CanDo2Value = true;
            Assert.AreEqual(true, BindingTestHelper.CanDoCommand(bt));
            Assert.AreEqual(4, vm.CanDo1Counter);
            Assert.AreEqual(2, vm.CanDo2Counter);
            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(1, vm.Do1Counter);
            Assert.AreEqual(1, vm.Do2Counter);
        }
        public void OneExecute()
        {
            var vm = CommandTests_a.Create();
            var bt = BindingTestHelper.BindAssert <Button>("Button", "Command", "{b:DXCommand Do1()}", null, vm);

            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(1, vm.Do1Counter);
            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(2, vm.Do1Counter);

            vm             = CommandTests_a.Create();
            vm.CanDo1Value = true;
            bt             = BindingTestHelper.BindAssert <Button>("Button", "Command", "{b:DXCommand Do1(), CanExecute='CanDo1()'}", null, vm);
            Assert.AreEqual(1, vm.CanDo1Counter);

            vm = CommandTests_a.Create();
            bt = BindingTestHelper.BindAssert <Button>("Button", "Command", "{b:DXCommand Do1(), CanExecute='CanDo1()'}", null, vm);
            Assert.AreEqual(1, vm.CanDo1Counter);
            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            Assert.AreEqual(2, vm.CanDo1Counter);
            Assert.AreEqual(0, vm.Do1Counter);
            vm.CanDo1Value = true;
            Assert.AreEqual(true, BindingTestHelper.CanDoCommand(bt));
            Assert.AreEqual(3, vm.CanDo1Counter);
            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(1, vm.Do1Counter);
        }
예제 #3
0
        public virtual void TwoMethods()
        {
            var vm = EventTests_a.Create();
            var bt = BindingTestHelper.BindAssert <EventTests_visual>("test:EventTests_visual", "CustomEvent", "{b:DXEvent 'Do1(); Do2()'}", null, vm);

            bt.RaiseCustomEvent();
            Assert.AreEqual(1, vm.Do1Counter);
            Assert.AreEqual(1, vm.Do2Counter);
        }
예제 #4
0
        public virtual void NoDataContextTest_T543513()
        {
            var bt = BindingTestHelper.BindAssert <EventTests_visual>("test:EventTests_visual", "CustomEvent", "{b:DXEvent Do1()}", null, null);

            bt.RaiseCustomEvent();

            bt = BindingTestHelper.BindAssert <EventTests_visual>("test:EventTests_visual", "CustomEvent", "{b:DXEvent 'Do1(@sender, @args)'}", null, null);
            bt.RaiseCustomEvent();
        }
예제 #5
0
        public void T983298()
        {
            var vm = EventTests_a.Create();
            var bt = BindingTestHelper.BindAssert <EventTests_visual>(
                "test:EventTests_visual",
                "CustomEvent",
                "{b:DXEvent Do6(null)}", null, vm);

            bt.RaiseCustomEvent();
            Assert.AreEqual(1, vm.Do6Counter);
        }
예제 #6
0
        public void AttachedPropertyTest()
        {
            var bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand 
                    Execute='@s.($test:CommandTests_a.AttachedProp) = true'}",
                null, null, false);

            Assert.AreEqual(null, CommandTests_a.GetAttachedProp(bt));
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(true, CommandTests_a.GetAttachedProp(bt));
        }
예제 #7
0
        public virtual void OneMethod()
        {
            var vm = EventTests_a.Create();
            var bt = BindingTestHelper.BindAssert <EventTests_visual>("test:EventTests_visual", "CustomRoutedEvent", "{b:DXEvent Do1()}", null, vm);

            Assert.AreEqual(0, vm.Do1Counter);
            bt.RaiseCustomRoutedEvent();
            Assert.AreEqual(1, vm.Do1Counter);

            bt = BindingTestHelper.BindAssert <EventTests_visual>("test:EventTests_visual", "CustomEvent", "{b:DXEvent Do1()}", null, vm);
            bt.RaiseCustomEvent();
            Assert.AreEqual(2, vm.Do1Counter);
        }
예제 #8
0
        public virtual void StaticMethod()
        {
            EventTests_a.DoValue = 0;
            var bt = BindingTestHelper.BindAssert <EventTests_visual>("test:EventTests_visual", "CustomEvent", "{b:DXEvent '$test:EventTests_a.DoStatic()'}", null, null);

            bt.RaiseCustomEvent();
            Assert.AreEqual(1, EventTests_a.DoValue);

            EventTests_a.DoValue = 0;
            bt = BindingTestHelper.BindAssert <EventTests_visual>("test:EventTests_visual", "CustomEvent", "{b:DXEvent '$test:EventTests_a.DoStatic()'}", null, new object());
            bt.RaiseCustomEvent();
            Assert.AreEqual(1, EventTests_a.DoValue);
        }
예제 #9
0
        public virtual void StaticMethod()
        {
            CommandTests_a.DoValue = 0;
            var bt = BindingTestHelper.BindAssert <Button>("Button", "Command", "{b:DXCommand '$test:CommandTests_a.DoStatic()'}", null, null);

            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(1, CommandTests_a.DoValue);

            CommandTests_a.DoValue = 0;
            bt = BindingTestHelper.BindAssert <Button>("Button", "Command", "{b:DXCommand '$test:CommandTests_a.DoStatic()'}", null, new object());
            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(1, CommandTests_a.DoValue);
        }
예제 #10
0
        public void AssignOperator_Static()
        {
            CommandTests_a.DoValue = 0;
            var bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand 
                    Execute='$test:CommandTests_a.DoValue = $test:CommandTests_a.DoValue + 1'}",
                null, null);

            Assert.AreEqual(0, CommandTests_a.DoValue);
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(1, CommandTests_a.DoValue);
        }
예제 #11
0
        public void NewOperator()
        {
            var vm = EventTests_a.Create();
            var bt = BindingTestHelper.BindAssert <EventTests_visual>(
                "test:EventTests_visual",
                "CustomRoutedEvent",
                "{b:DXEvent Do5(new $Thickness(@s.Margin.Left))}", null, vm);

            bt.RaiseCustomRoutedEvent();
            Assert.AreEqual(new Thickness(), vm.Do5V);
            bt.Margin = new Thickness(1);
            bt.RaiseCustomRoutedEvent();
            Assert.AreEqual(new Thickness(1), vm.Do5V);
        }
        public void T709285()
        {
            var vm = new T709285_VM();

            ((T709285_VM_Base)vm).Prop = "1";
            var bt = BindingTestHelper.BindAssert <EventTests_visual>(
                "test:EventTests_visual",
                "CustomRoutedEvent",
                "{b:DXEvent Do(Prop)}", null, vm);

            Assert.AreEqual(null, vm.ResProp);
            bt.RaiseCustomRoutedEvent();
            Assert.AreEqual("1", vm.ResProp);
        }
예제 #13
0
        public virtual void Arguments()
        {
            var vm = CommandTests_a.Create();
            var bt = BindingTestHelper.BindAssert <Button>("Button", "Command",
                                                           "{b:DXCommand Execute='Do3(@s.Tag.Parameter, @parameter);', CanExecute='CanDo3(@s.Tag.CanDo)'}", null, vm);

            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            bt.Tag = new { CanDo = true }; BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            bt.Tag = new { CanDo = true, Parameter = 1 }; BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            bt.CommandParameter = 1; BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(true, BindingTestHelper.CanDoCommand(bt));
            BindingTestHelper.DoCommand(bt);
            Assert.AreEqual(2, vm.Do3Value);
        }
예제 #14
0
        public void AssignOperators()
        {
            var vm = new CommandTests_b()
            {
                IntProp = 0
            };
            var bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand 
                    Execute='IntProp = IntProp + 1; IntProp = IntProp + 1;;'}",
                null, vm);

            Assert.AreEqual(0, vm.IntProp);
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(2, vm.IntProp);
        }
예제 #15
0
        public void T684511()
        {
            var vm = new CommandTests_b();
            var bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand Execute='DoException()'}",
                null, vm);

            Assert.DoesNotThrow(() => BindingTestHelper.DoCommand(bt));

            bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand Execute='DoException()', CatchExceptions=False}",
                null, vm);
            var e = Assert.Throws <TargetInvocationException>(() => BindingTestHelper.DoCommand(bt));

            Assert.AreEqual("DoException", e.InnerException.Message);
        }
예제 #16
0
        public void AssignOperator()
        {
            var vm = new CommandTests_b()
            {
                IntProp = 0
            };
            var bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand 
                    Execute='IntProp = IntProp + 1'}",
                null, vm);

            Assert.AreEqual(0, vm.IntProp);
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(1, vm.IntProp);

            vm.IntProp = 0;
            bt         = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand 
                    Execute='IntProp = IntProp + @parameter'}",
                null, vm);
            bt.CommandParameter = 1;
            Assert.AreEqual(0, vm.IntProp);
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(1, vm.IntProp);
            bt.CommandParameter = 2;
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(3, vm.IntProp);

            bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand 
                    Execute='@s.Tag = @parameter'}",
                null, null);
            bt.CommandParameter = 1;
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(1, bt.Tag);
            bt.CommandParameter = 2;
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(2, bt.Tag);
        }
예제 #17
0
        public void NewOperator()
        {
            var vm = new CommandTests_b();
            var bt = BindingTestHelper.BindAssert <Button>(
                "Button", "Command",
                @"{b:DXCommand 
                    Execute='Do(@s.Margin);', 
                    CanExecute='new $Thickness(@s.Margin.Bottom).Left == 1'}",
                null, vm);

            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            Assert.AreEqual(0, vm.DoubleProp);

            bt.Margin = new Thickness(1, 0, 0, 0); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(false, BindingTestHelper.CanDoCommand(bt));
            Assert.AreEqual(0, vm.DoubleProp);

            bt.Margin = new Thickness(1, 0, 0, 1); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(true, BindingTestHelper.CanDoCommand(bt));
            BindingTestHelper.DoCommand(bt); BindingTestHelper.DoEvents(bt);
            Assert.AreEqual(1, vm.DoubleProp);
        }