public void Initialize_Test() { var model = new ProviderFieldEditList(); var parentMock = Mock.Create<ITopLevelWindow>(Behavior.CallOriginal); var vm = new SourceFieldsViewModel(); vm.Initialize(model, parentMock); Assert.AreSame(model, vm.Model); Assert.AreSame(parentMock, vm.ParentWindow); }
public void RemoveFieldCommand_Test() { var model = new ProviderFieldEditList { DataPortal.CreateChild<ProviderFieldEdit>(), DataPortal.CreateChild<ProviderFieldEdit>(), DataPortal.CreateChild<ProviderFieldEdit>() }; var parentMock = Mock.Create<ITopLevelWindow>(Behavior.CallOriginal); Action onOk = null; var popupBuilderMock = Mock.Create<PopupBuilder>(Behavior.CallOriginal); Mock.Arrange(() => popupBuilderMock.Show(Arg.IsAny<Action>(), Arg.IsAny<Func<bool>>())).DoInstead<Action, Func<bool>>((ok, cancel) => { onOk = ok; }).Returns(popupBuilderMock); var popupFactoryMock = Mock.Create<PopupFactory>(Behavior.CallOriginal); Mock.Arrange(() => popupFactoryMock.Popup()).Returns(popupBuilderMock); var vm = new SourceFieldsViewModel { ThePopupFactory = popupFactoryMock }; vm.Initialize(model, parentMock); vm.SelectedProviderField = null; Assert.IsFalse(vm.RemoveFieldCommand.CanExecute(new object())); vm.SelectedProviderField = model.First(); Assert.IsTrue(vm.RemoveFieldCommand.CanExecute(new object())); Assert.AreEqual(3, vm.Model.Count); vm.RemoveFieldCommand.Execute(new object()); Assert.IsNotNull(onOk); onOk(); Assert.AreEqual(2, vm.Model.Count); }
public void AddFieldCommand_Test() { var model = new ProviderFieldEditList(); var parentMock = Mock.Create<ITopLevelWindow>(Behavior.CallOriginal); var vm = new SourceFieldsViewModel(); vm.Initialize(model, parentMock); Assert.AreEqual(0, vm.Model.Count); vm.AddFieldCommand.Execute(new object()); Assert.AreEqual(1, vm.Model.Count); Assert.AreSame(vm.Model.Last(), vm.SelectedProviderField); Assert.IsFalse(string.IsNullOrEmpty(vm.SelectedProviderField.Name)); Assert.IsFalse(string.IsNullOrEmpty(vm.SelectedProviderField.SystemName)); Assert.IsFalse(string.IsNullOrEmpty(vm.SelectedProviderField.Type)); }