public void OwrAutoWireDataContextXNameAlias4()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // The name "AutoWireAliasDataContextVer123"        is split into parts {"Auto","Wire","Alias","Data","Context","Ver123"} , and
                // The name "AutoWire_Alias_DataContext_Ver123"     is split into parts {"Auto","Wire","Alias","Data","Context","Ver123"};
                // so they are considered as the match.

                // case UnitTest.AliasDataContext            !=> UnitTest.ViewModels.AliasDataContext
                // x:Name=AutoWireAliasDataContextVer123     !=> UnitTest.ViewModels.AutoWireAliasDataContext
                //                                           ==> UnitTest.ViewModels.AutoWireAbracadabraName123 because  [ViewModelClassAlias("AutoWire_Alias_DataContext_Ver123")]

                AliasDataContext dependencyObject = new AliasDataContext();
                dependencyObject.Name             = "AutoWireAliasDataContextVer123";
                object dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext()
                {
                    ViewModelNamespaceOverwrite = "Abracadabra.Where.It.Placed"
                };
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.NotNull(dataContext);
            });
        }
        public void AutoWireControlsTestButtonEventsSource()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                DataContextButonVFM dependencyObject = new DataContextButonVFM();
                var viewmodel = new UnitTestMvvmBindingPack.ViewModels.DataContextViewModelButtonT2();
                AutoWireViewConrols wireProvider = new AutoWireViewConrols()
                {
                    Source = viewmodel
                };
                dependencyObject.Name = "TestButton";
                wireProvider.FrameworkElementLoaded(dependencyObject, new RoutedEventArgs(FrameworkElement.LoadedEvent));

                //
                // check wiring results of wiring - EVENTS
                //
                dependencyObject.RaiseEvent(new RoutedEventArgs(UIElement.GotFocusEvent));
                Assert.IsTrue(viewmodel.TestButtonGotFocusCalled, "TestButton_GotFocus in View  was not wired");

                dependencyObject.RaiseEvent(new RoutedEventArgs(UIElement.LostFocusEvent));
                Assert.IsTrue(viewmodel.TestButtonLostFocusCalled, "TestButton_GotFocus  in View was not wired");

                Assert.IsNotNull(viewmodel._ButtonXName_TestButton, "TestButton control was not wired to View Model from View");

                Assert.IsNotNull(viewmodel._Button_GotFocus, "TestButton GotFocus event was not wired to View Model from View");
                Assert.IsTrue(viewmodel._Button_GotFocus.IsEvent, "TestButton GotFocus event was not wired to View Model from View");

                Assert.IsNotNull(viewmodel._Button_LostFocus, "TestButton GotFocus event was not wired to View Model from View");
                Assert.IsTrue(viewmodel._Button_LostFocus.IsEvent, "TestButton GotFocus event was not wired to View Model from View");
            });
        }
        public void AutoWireDataContextNoXNameNeg()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContext !=> UnitTest.ViewModels.AutoWireDataContext
                //                                   !=> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContext dependencyObject = new AutoWireDataContext();
                object dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext();
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);
            });
        }
        public void AutoWireDataContextNoNameAlias1()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireAliaasDataContext   !=> UnitTest.ViewModels.AutoWireAliasDataContext
                //                                           ==> UnitTest.ViewModels.AutoWireAbracadabraName123 because  [ViewModelClassAlias("AutoWireAliasDataContext")]

                AutoWireAliasDataContext dependencyObject = new AutoWireAliasDataContext();
                object dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext();
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.NotNull(dataContext);
            });
        }
        public void OwrAutoWireDataContextXNamePriority1()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContext   !=> UnitTest.ViewModels.AutoWireDataContext
                // x:Name=AutoWireDataContextViewModel ==> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContext dependencyObject = new AutoWireDataContext();
                dependencyObject.Name = "AutoWireDataContextViewModel";
                object dataContext    = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext();
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.NotNull(dataContext);
            });
        }
        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");
            });
        }
        public void OwrAutoWireDataContextNoXName()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContextView ==> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContextView dependencyObject = new AutoWireDataContextView();
                object dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext()
                {
                    ViewModelNamespaceOverwrite = "Abracadabra.Where.It.Placed"
                };
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.NotNull(dataContext);
            });
        }
        public void AutoWireDataContextNoXName()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContextView ==> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContextView dependencyObject = new AutoWireDataContextView();
                object dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext();
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.NotNull(dataContext);

                object awVM = BindXAML.GetAutoWiredViewModel(dependencyObject);
                Assert.True(object.ReferenceEquals(awVM, dataContext));
            });
        }
        public void OwrAutoWireDataContextNoXNameSubMatch()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContext ==> UnitTest.ViewModels.AutoWireDataContext because (sub match)
                //                                   !=> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContext dependencyObject = new AutoWireDataContext();
                object dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext()
                {
                    UseMaxNameSubMatch = true, ViewModelNamespaceOverwrite = "Abracadabra.Where.It.Placed"
                };
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.NotNull(dataContext);
            });
        }
        public void AutoWireControlsTestButtonICommand2()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                DataContextButonVFM dependencyObject = new DataContextButonVFM();
                var viewmodel = new UnitTestMvvmBindingPack.ViewModels.DataContextViewModelButtonT2();
                dependencyObject.DataContext     = viewmodel;
                AutoWireViewConrols wireProvider = new AutoWireViewConrols();
                dependencyObject.Name            = "TestButton2";
                wireProvider.FrameworkElementLoaded(dependencyObject, new RoutedEventArgs(FrameworkElement.LoadedEvent));
                //
                // check wiring results of wiring - ICommand interface
                //

                viewmodel.ButtonCanExecute = true;
                var iCmd = dependencyObject.Command;
                iCmd.Execute(null);
                Assert.IsTrue(viewmodel.ButtonExecuteCalled, "TestButton ICommand.Execute was not wired to View Model from View");
            });
        }
예제 #11
0
        public void AutoWireDataContextXNamePriority1()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContext   !=> UnitTest.ViewModels.AutoWireDataContext
                // x:Name=AutoWireDataContextViewModel ==> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContext dependencyObject = new AutoWireDataContext();
                dependencyObject.Name = "AutoWireDataContextViewModel";
                object dataContext    = dependencyObject.DataContext;
                Assert.IsNull(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext();
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.IsNotNull(dataContext);

                object awVM = BindXAML.GetAutoWiredViewModel(dependencyObject);
                Assert.IsTrue(object.ReferenceEquals(awVM, dataContext));
            });
        }
        public void AutoWireDataContextNoXNameTag()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContextView ==> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContextView dependencyObject = new AutoWireDataContextView();
                object viewModel = dependencyObject.Tag;
                Assert.Null(viewModel);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext()
                {
                    TargetPropertyName = "Tag"
                };
                wireProvider.Execute(dependencyObject);
                viewModel = dependencyObject.Tag;
                Assert.NotNull(viewModel);

                object awVM = BindXAML.GetAutoWiredViewModel(dependencyObject);
                Assert.True(object.ReferenceEquals(awVM, viewModel));
            });
        }
        public void OwrAutoWireDataContextXNameAlias2()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AliasDataContext            !=> UnitTest.ViewModels.AliasDataContext
                // x:Name=AutoWireAliasDataContext           !=> UnitTest.ViewModels.AutoWireAliasDataContext
                //                                           ==> UnitTest.ViewModels.AutoWireAbracadabraName123 because  [ViewModelClassAlias("AutoWireAliasDataContext")]

                AliasDataContext dependencyObject = new AliasDataContext();
                dependencyObject.Name             = "AutoWireAliasDataContext";
                object dataContext = dependencyObject.DataContext;
                Assert.Null(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext()
                {
                    ViewModelNamespaceOverwrite = "Abracadabra.Where.It.Placed"
                };
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.NotNull(dataContext);
            });
        }
        public void AutoWireControlsTestButtonProperties()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                DataContextButonVFM dependencyObject = new DataContextButonVFM();
                var viewmodel = new UnitTestMvvmBindingPack.ViewModels.DataContextViewModelButtonT2();
                dependencyObject.DataContext     = viewmodel;
                AutoWireViewConrols wireProvider = new AutoWireViewConrols();
                dependencyObject.Name            = "TestButton";
                wireProvider.FrameworkElementLoaded(dependencyObject, new RoutedEventArgs(FrameworkElement.LoadedEvent));
                //
                // check wiring results of wiring - PROPERTIES
                //
                Assert.AreEqual("Content", dependencyObject.Content, "TestButton.Content was not wired to View Model from View");

                Assert.AreEqual("Tag", dependencyObject.Tag, "TestButton.Tag was not wired to View Model from View");

                dependencyObject.Tag = "TagTag";
                Assert.AreEqual("TagTag", viewmodel._propertyDymanicContent, "TestButton.Tag was not wired to View Model from View");

                viewmodel.PropertyDymanicContent = "TagTagTag";
                Assert.AreEqual("TagTagTag", dependencyObject.Tag, "TestButton.Tag was not wired to View Model from View");

                Assert.AreEqual(123, Grid.GetRow(dependencyObject), "TestButton (Grid.Row) was not wired to View Model from View");

                Assert.IsNotNull(viewmodel._Button_Content, "TestButton Content property was not wired to View Model from View");
                Assert.IsTrue(viewmodel._Button_Content.IsProperty, "TestButton Content property was not wired to View Model from View");
                Assert.AreEqual("Content", viewmodel._Button_Content.GetPropertyValue(), "TestButton Content property was not wired to View Model from View");

                Assert.IsNotNull(viewmodel._Button_Tag, "TestButton Tag property was not wired to View Model from View");
                Assert.IsTrue(viewmodel._Button_Tag.IsProperty, "TestButton Tag property was not wired to View Model from View");
                Assert.AreEqual("TagTagTag", viewmodel._Button_Tag.GetPropertyValue(), "TestButton Tag property was not wired to View Model from View");

                Assert.IsNotNull(viewmodel._Button_GridRow, "TestButton (Grid.Row) property was not wired to View Model from View");
                Assert.IsTrue(viewmodel._Button_GridRow.IsProperty, "TestButton (Grid.Row) property was not wired to View Model from View");
                Assert.AreEqual(123, viewmodel._Button_GridRow.GetPropertyValue(), "TestButton (Grid.Row) property was not wired to View Model from View");
            });
        }
예제 #15
0
        public void AutoWireDataContextNoXNameSubMatch()
        {
            ExecuteInStaMode.Invoke(() =>
            {
                // case UnitTest.AutoWireDataContext ==> UnitTest.ViewModels.AutoWireDataContext because (sub match)
                //                                   !=> UnitTest.ViewModels.AutoWireDataContextViewModel

                AutoWireDataContext dependencyObject = new AutoWireDataContext();
                object dataContext = dependencyObject.DataContext;
                Assert.IsNull(dataContext);

                AutoWireVmDataContext wireProvider = new AutoWireVmDataContext()
                {
                    UseMaxNameSubMatch = true
                };
                wireProvider.Execute(dependencyObject);
                dataContext = dependencyObject.DataContext;
                Assert.IsNotNull(dataContext);

                object awVM = BindXAML.GetAutoWiredViewModel(dependencyObject);
                Assert.IsTrue(object.ReferenceEquals(awVM, dataContext));
            });
        }