コード例 #1
0
        public void ProvideValueExceptions()
        {
            var stubServiceProvider = MockServiceProvider.Instance;

            var bindEvent = new BindEventHandler();
            var viewModel = new _TestBindEventHandler();

            bindEvent.Source = viewModel;

            // ReSharper disable AccessToModifiedClosure
            UnitTestInternal.AssertThrows(typeof(ArgumentException), () => bindEvent.ProvideValue(stubServiceProvider),
                                          // ReSharper restore AccessToModifiedClosure
                                          "ProvideValueExceptions - expected exception - ArgumentException");
            bindEvent.PropertyName = "ButtonClickPropDelegate";
            bindEvent.MethodName   = "ButtonClick";

            // ReSharper disable AccessToModifiedClosure
            UnitTestInternal.AssertThrows(typeof(ArgumentException), () => bindEvent.ProvideValue(stubServiceProvider),
                                          // ReSharper restore AccessToModifiedClosure
                                          "ProvideValueExceptions - expected exception - ArgumentException");

            bindEvent.PropertyName = null;
            bindEvent.MethodName   = null;

            stubServiceProvider = MockServiceProvider.Instance;

            UnitTestInternal.AssertThrows(typeof(ArgumentException), () => bindEvent.ProvideValue(stubServiceProvider),
                                          "ProvideValueExceptions - expected exception - ArgumentException");
        }
コード例 #2
0
        public void BindEventHandlerConstructor()
        {
            const string source    = "Source";
            var          bindEvent = new BindEventHandler(source);

            Assert.Equal(source, bindEvent.Source);
        }
コード例 #3
0
        public void BindEventHandlerByMethodName()
        {
            var stubServiceProvider = MockServiceProvider.Instance;

            var bindEvent = new BindEventHandler();
            var viewModel = new _TestBindEventHandler();

            bindEvent.Source     = viewModel;
            bindEvent.MethodName = "ButtonClick";

            var bindResolve = bindEvent.ProvideValue(stubServiceProvider);

            FakeTargetHandler += (RoutedEventHandler)bindResolve;
            FakeTargetHandler(null, null);
            Assert.Equal(viewModel.Count, int.MaxValue);
            FakeTargetHandler -= (RoutedEventHandler)bindResolve;
        }
コード例 #4
0
        public void AddEvents()
        {
            UIElement dependencyObject = new UIElement();
            var       bindEvent        = new BindEventHandler();
            var       viewModel        = new _TestBindEventHandler();

            bindEvent.Source          = viewModel;
            bindEvent.MethodName      = "RoutedEventHandler";
            bindEvent.TargetEventName = "GotFocus";

            // rise event to the property
            BindXAML.ProcessAddEventItems(dependencyObject, bindEvent);
            RoutedEventArgs newEventArgs = new RoutedEventArgs(UIElement.GotFocusEvent);

            dependencyObject.RaiseEvent(newEventArgs);

            Assert.True(viewModel.EventCalled);
        }
コード例 #5
0
        public void AddPropertyChangeEvents()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                UIElement dependencyObject = new UIElement();
                var bindEvent                = new BindEventHandler();
                var viewModel                = new _TestBindEventHandlerChange();
                bindEvent.Source             = viewModel;
                bindEvent.MethodName         = "EventHandler";
                bindEvent.TargetPropertyName = "IsEnabled";

                BindXAML.ProcessAddPropertyChangeEventItems(dependencyObject, bindEvent);

                // change the property
                dependencyObject.IsEnabled = false;
                Assert.True(viewModel.EventCalled, "Dependency property change event was not set");
            });
        }