public void SetDocumentOwnerTest()
        {
            var    viewModel = new TestVM();
            Button button    = new Button()
            {
                DataContext = viewModel
            };
            var documentOwner = new TestDocumentOwner();

            ViewModelExtensions.SetDocumentOwner(button, documentOwner);
            Assert.AreSame(documentOwner, viewModel.DocumentOwner);
            Assert.AreEqual(1, viewModel.DocumentOwnerChangingCounter);
        }
        public void ViewHelperShouldWrapDocumentOwnerIfDependencyObject_Test_T122209()
        {
            var            button          = new Button();
            var            viewModel       = new ViewModel();
            var            parentViewModel = new ViewModel();
            IDocumentOwner owner           = new TestDocumentOwner();

            button.DataContext = viewModel;
            ViewHelper.InitializeView(button, null, "test", parentViewModel, owner);
            Assert.AreEqual(owner, viewModel.DocumentOwner);
            Assert.AreEqual(owner, ViewModelExtensions.GetDocumentOwner(button));

            button             = new Button();
            button.DataContext = viewModel;
            owner = new TestServiceDocumentOwner();
            ViewHelper.InitializeView(button, null, "test", parentViewModel, owner);
            ViewHelper.DocumentOwnerWrapper ownerWrapper = viewModel.DocumentOwner as ViewHelper.DocumentOwnerWrapper;
            Assert.IsNotNull(ownerWrapper);
            Assert.IsTrue(ownerWrapper.Equals(owner));
            Assert.AreEqual(owner, ownerWrapper.ActualOwner);
            Assert.AreEqual(ownerWrapper, ViewModelExtensions.GetDocumentOwner(button));
        }
        public void ViewHelperShouldWrapDocumentOwnerIfDependencyObject_Test_T122209() {
            var button = new Button();
            var viewModel = new ViewModel();
            var parentViewModel = new ViewModel();
            IDocumentOwner owner = new TestDocumentOwner();
            button.DataContext = viewModel;
            ViewHelper.InitializeView(button, null, "test", parentViewModel, owner);
            Assert.AreEqual(owner, viewModel.DocumentOwner);
            Assert.AreEqual(owner, ViewModelExtensions.GetDocumentOwner(button));

            button = new Button();
            button.DataContext = viewModel;
            owner = new TestServiceDocumentOwner();
            ViewHelper.InitializeView(button, null, "test", parentViewModel, owner);
            ViewHelper.DocumentOwnerWrapper ownerWrapper = viewModel.DocumentOwner as ViewHelper.DocumentOwnerWrapper;
            Assert.IsNotNull(ownerWrapper);
            Assert.IsTrue(ownerWrapper.Equals(owner));
            Assert.AreEqual(owner, ownerWrapper.ActualOwner);
            Assert.AreEqual(ownerWrapper, ViewModelExtensions.GetDocumentOwner(button));
        }