public void GetViewModelTest() { IView view = new MockView(); var viewModel = new MockViewModel(view); Assert.AreEqual(viewModel, view.GetViewModel<MockViewModel>()); }
public void IsValidTest() { UserControl view = new UserControl(); MockViewModel viewModel = new MockViewModel(); view.DataContext = viewModel; Assert.IsTrue(ValidationHelper.GetIsValid(view)); // It is not allowed to call the set method AssertHelper.ExpectedException<InvalidOperationException>(() => ValidationHelper.SetIsValid(view, true)); // But we can set a binding. Binding binding = new Binding(nameof(MockViewModel.IsValid)); // ValidationHelper.IsEnabled is false => exception AssertHelper.ExpectedException<InvalidOperationException>(() => BindingOperations.SetBinding(view, ValidationHelper.IsValidProperty, binding)); ClearIsValidBinding(view); ValidationHelper.SetIsEnabled(view, true); // Binding must have the mode OneWayToSource => exception AssertHelper.ExpectedException<InvalidOperationException>(() => BindingOperations.SetBinding(view, ValidationHelper.IsValidProperty, binding)); ClearIsValidBinding(view); // Now everything is correct => no exception binding = new Binding(nameof(MockViewModel.IsValid)); binding.Mode = BindingMode.OneWayToSource; BindingOperations.SetBinding(view, ValidationHelper.IsValidProperty, binding); ValidationHelper.InternalSetIsValid(view, false); Assert.IsFalse(ValidationHelper.GetIsValid(view)); }
public void AssertViewModelIsValid() { var viewModel = new MockViewModel(); var instance = new ProjectExplorerView(viewModel); Assert.AreEqual(viewModel, instance.DataContext); }
public void SetsViewModelSet() { var viewModel = new MockViewModel(); viewModel.SetState<MockViewModel>(x => x.Title = "Test"); Assert.That(viewModel.Title, Is.EqualTo("Test")); }
public void GetViewModelTest() { MockView view = new MockView(); MockViewModel viewModel = new MockViewModel(view); Assert.AreEqual(viewModel, view.GetViewModel<MockViewModel>()); AssertHelper.ExpectedException<ArgumentNullException>(() => ViewHelper.GetViewModel(null)); }
public void GetView() { IView view = new MockView(); MockViewModel viewModel = new MockViewModel(view); Assert.AreEqual(view, viewModel.View); MockViewModel viewModel2 = new MockViewModel(view, false); Assert.AreEqual(view, viewModel2.View); }
public void GetViewModelWithDispatcherTest() { SynchronizationContext.SetSynchronizationContext(new DispatcherSynchronizationContext()); var view = new MockView(); var viewModel = new MockViewModel(view); Assert.AreEqual(viewModel, view.GetViewModel<MockViewModel>()); }
public void Given_TryingToMockAFactory_When_UnitTesting_Then_Golden() { var expected = new MockViewModel {Property = "Shazam"}; var mock = new Mock<Factory<ViewModel>>(); mock.Setup(m => m.Create<IViewModel>()).Returns(expected); var sut = new MockFactoryHarness(mock.Object); sut.ActivateFactory(); var actual = sut.TestObject; Assert.AreEqual(expected, actual); }
public void NotifyPropertyChanged() { _propertiesChanged = new List<string>(); var viewModel = new MockViewModel(); var propertyName = Guid.NewGuid().ToString(); viewModel.PropertyChanged += PropertyChanged; viewModel.TriggerPropertyChanged(propertyName); viewModel.PropertyChanged -= PropertyChanged; Assert.AreEqual(1, _propertiesChanged.Count); Assert.IsTrue(_propertiesChanged.Contains(propertyName)); }
public void HandlesPropertyChanged() { bool propertyChanged = false; var viewModel = new MockViewModel(); viewModel.PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(viewModel.Title) && viewModel.Title == "Test") propertyChanged = true; }; viewModel.Title = "Test"; Assert.That(propertyChanged, Is.True); }
public void CanCreateVisualizationForModel() { ModelVisualizationRegistry registry = new ModelVisualizationRegistry(new UnityContainer()); registry.Register<MockViewModel, MockView>(); var mockViewModel = new MockViewModel(); var visualization = registry.CreateVisualization(mockViewModel) as ModelVisualizer; Assert.IsNotNull(visualization); Assert.IsNotNull(visualization.View); Assert.IsNotNull(visualization.ViewModel); Assert.IsInstanceOfType(visualization.View, typeof(MockView)); Assert.AreSame(visualization.ViewModel, mockViewModel); }
public void SetUp() { _action = x => x.Title = "Test"; _viewModel = new MockViewModel(); var navigation = new Mock<INavigation>(); var page = new Mock<IPage>(); page.Setup(x => x.Navigation).Returns(navigation.Object); navigation.Setup(x => x.PopAsync()).ReturnsAsync(new Page { BindingContext = new MockViewModel()}); navigation.Setup(x => x.PopModalAsync()).ReturnsAsync(new Page { BindingContext = new MockViewModel()}); navigation.Setup(x => x.PopToRootAsync()); var viewFactory = new Mock<IViewFactory>(); viewFactory.Setup(x => x.Resolve<MockViewModel>(out _viewModel, _action)).Returns(new MockView()); _navigator = new Navigator(page.Object, viewFactory.Object); }
public void SetUp() { _action = x => x.Title = "Test"; _viewModel = new MockViewModel(); var navigation = mock.Mock <INavigation>(); navigation.Setup(x => x.PopAsync()).ReturnsAsync(new Page { BindingContext = new MockViewModel() }); navigation.Setup(x => x.PopModalAsync()).ReturnsAsync(new Page { BindingContext = new MockViewModel() }); navigation.Setup(x => x.PopToRootAsync()); mock.Mock <IViewFactory>().Setup(x => x.Resolve(out _viewModel, _action)).Returns(new MockView()); mock.Provide <IDeviceService, MockDeviceService>(); _navigator = mock.Create <Navigator>(); //(new Lazy<INavigation>(() => navigation.Object), viewFactory.Object); }
public void ViewModelBase_GetCommandA_Test6() { var vm = new MockViewModel(); var commandInvoked = false; ICommand cmd = vm.InvokeGetCommandA <int>("Test", x => commandInvoked = true); Assert.IsFalse(commandInvoked); try { cmd.Execute("X"); Assert.Fail("Expected an exception"); } catch (ArgumentException) { //OK } }
public void SetPropertyMethodShouldNotSetTheNewValue() { int value = 10; MockViewModel mockViewModel = new MockViewModel() { MockProperty = 10 }; bool invoked = false; mockViewModel.PropertyChanged += (o, e) => { if (e.PropertyName.Equals("MockProperty")) { invoked = true; } }; mockViewModel.MockProperty = value; Assert.False(invoked); Assert.Equal(mockViewModel.MockProperty, value); }
public void NestedSuppressValidation_SetInvalidValue_ThereAreNoErrors() { // Arrange var vm = new MockViewModel(); // Act using (vm.Validation.SuppressValidation()) { using (vm.Validation.SuppressValidation()) { vm.RangeStart = 10; } vm.RangeEnd = 1; } // Verify Assert.True(string.IsNullOrEmpty(vm.GetErrors("RangeStart").Cast <string>().FirstOrDefault())); Assert.True(string.IsNullOrEmpty(vm.GetErrors("RangeEnd").Cast <string>().FirstOrDefault())); }
public void RangeProperties_ChangeFromInvalidToValid_ValidationErrorsDisappear() { // Arrange var vm = new MockViewModel(); // Act vm.RangeStart = 10; vm.RangeEnd = 1; // Assert Assert.False(string.IsNullOrEmpty(vm.GetErrors("RangeStart").Cast <string>().FirstOrDefault())); Assert.False(string.IsNullOrEmpty(vm.GetErrors("RangeEnd").Cast <string>().FirstOrDefault())); // Act vm.RangeEnd = 11; // Assert Assert.True(string.IsNullOrEmpty(vm.GetErrors("RangeStart").Cast <string>().FirstOrDefault())); Assert.True(string.IsNullOrEmpty(vm.GetErrors("RangeEnd").Cast <string>().FirstOrDefault())); }
public void Can_Locate_ViewModel() { FrameworkElement element; var viewModel = new MockViewModel(); var expectedViewName = typeof(MockView).Name; element = ViewLocator.LocateFor(viewModel); Assert.IsNotNull(element); Assert.AreEqual(expectedViewName, element.GetType().Name); Assert.AreEqual(viewModel, element.DataContext); element = ViewLocator.LocateFor(viewModel.GetType()); Assert.IsNotNull(element); Assert.AreEqual(expectedViewName, element.GetType().Name); Assert.AreNotEqual(viewModel, element.DataContext); element = ViewLocator.LocateFor <MockViewModel>(); Assert.IsNotNull(element); Assert.AreEqual(expectedViewName, element.GetType().Name); }
public void GetViewAndVerifyDataContext() { IView view1 = new MockView(); MockViewModel viewModel1 = new MockViewModel(view1, false); Assert.AreEqual(view1, viewModel1.View); Assert.IsNull(view1.DataContext); IView view2 = new MockView(); MockViewModel viewModel2 = new MockViewModel(view2, true); Assert.AreEqual(view2, viewModel2.View); Assert.AreEqual(viewModel2, view2.DataContext); IView view3 = new MockView(); MockViewModel viewModel3 = new MockViewModel(view3); Assert.AreEqual(view3, viewModel3.View); Assert.AreEqual(viewModel3, view3.DataContext); }
public void Execute() { var expectedArgument = "Test"; var isExecuted = false; var mockViewModel = new MockViewModel(); mockViewModel.Command = new RelayCommand <string>(x => { if (!string.IsNullOrEmpty(x) && x.Equals(expectedArgument)) { isExecuted = true; } }); mockViewModel.Command.Execute(null); Assert.IsFalse(isExecuted); mockViewModel.Command.Execute(expectedArgument); Assert.IsTrue(isExecuted); }
public void ExecuteAsyncT_WithIViewModelBase_IsBusyTrueWhileRunning(int number) { bool isExecuting = true; var vm = new MockViewModel(); var command = new SafeCommand <int>(async(i) => { Assert.True(vm.IsBusy); await Task.Delay(DELAY); isExecuting = false; }, vm); var thread = new Thread(new ThreadStart(() => command.Execute(number))); Assert.False(vm.IsBusy); thread.Start(); //see Assert in command while (isExecuting) { Thread.Sleep(DELAY / 25); } Thread.Sleep(5); Assert.False(vm.IsBusy); }
public void BindSpecialPropertyOnExtensionsWithNotifyPropertyChanged() { // Arrange var bnd = new Binder(); var customExtensionsScanner = new TypeExtensionsScanner(bnd.PropertyScanner); customExtensionsScanner.AdapterRegistry.Register <MockViewExtensions>(); bnd.PropertyScanner.Add(new NotifyPropertyChangedPropertyScanner()); bnd.PropertyScanner.Add(customExtensionsScanner); var ob1 = new MockView(); var ob2 = new MockViewModel(); _bindings = bnd.Bind(new object[] { ob1, ob2 }); // Act ob2.SpecialProperty = 666; // Assert Assert.Greater(_bindings.Count(), 0); Assert.AreEqual(666, ob1.GetSpecialProperty()); }
public void Tests_NotificationError() { // arrange var target = new MockViewModel { FirstName = "John", LastName = "Smith" }; // act target.DayOfWeek = DayOfWeek.Monday; // この時点ではエラーでないこと。 Assert.False(target.HasErrors); // ここで検証してエラーが通知されること。 target.Validate(); // assert Assert.True(target.HasPropertyError(() => target.DayOfWeek)); ConsoleWriteErrorMessages(target); }
public void CanRemoveView() { var registry = new MockModelVisualizationRegistry(); var view = new MockView(); var viewModel = new MockViewModel(); registry.VisualizationToReturn = new MockModelVisualizer() { View = view, ViewModel = viewModel }; VisualizingRegion region = new VisualizingRegion(registry); region.InnerRegion = new Region(); region.Add(viewModel); Assert.IsTrue(region.Views.Contains(registry.VisualizationToReturn)); region.Remove(viewModel); Assert.IsFalse(region.Views.Contains(registry.VisualizationToReturn)); }
public void Execute() { var expectedArgument = "Test"; var isExecuted = false; var mockViewModel = new MockViewModel(); mockViewModel.Command = new RelayCommandAsync <string>(x => { if (!string.IsNullOrEmpty(x) && x.Equals(expectedArgument)) { isExecuted = true; } return(Task.FromResult(0)); }); ((ICommand)mockViewModel.Command).Execute(null); Assert.IsFalse(isExecuted); ((ICommand)mockViewModel.Command).Execute(expectedArgument); Assert.IsTrue(isExecuted); }
public void BindViewToViewmodel() { // Arrange var bnd = new Binder(); bnd.PropertyScanner.Add(new ReflectionPropertyScanner()); bnd.PropertyScanner.Add(new NotifyPropertyChangedPropertyScanner()); var view = new MockView { Control = new MockControl("ViewOrig") }; var vm = new MockViewModel(); _bindings = bnd.Bind(new object[] { vm, view }); // Act view.Control.Text = "banaan"; view.Control.Size = 11; // Assert Assert.Greater(_bindings.Count(), 0); Assert.AreEqual("banaan", vm.ControlText); Assert.AreEqual(11, vm.ControlSize); }
public void SetUp() { _action = x => x.Title = "Test"; _viewModel = new MockViewModel(); var navigation = new Mock <INavigation>(); var page = new Mock <IPage>(); page.Setup(x => x.Navigation).Returns(navigation.Object); navigation.Setup(x => x.PopAsync()).ReturnsAsync(new Page { BindingContext = new MockViewModel() }); navigation.Setup(x => x.PopModalAsync()).ReturnsAsync(new Page { BindingContext = new MockViewModel() }); navigation.Setup(x => x.PopToRootAsync()); var viewFactory = new Mock <IViewFactory>(); viewFactory.Setup(x => x.Resolve <MockViewModel>(out _viewModel, _action)).Returns(new MockView()); _navigator = new Navigator(page.Object, viewFactory.Object); }
public void IsValidTest() { var view = new UserControl(); var viewModel = new MockViewModel(); view.DataContext = viewModel; Assert.IsTrue(ValidationHelper.GetIsValid(view)); // It is not allowed to call the set method AssertHelper.ExpectedException <InvalidOperationException>(() => ValidationHelper.SetIsValid(view, true)); // But we can set a binding. var binding = new Binding(nameof(MockViewModel.IsValid)); // ValidationHelper.IsEnabled is false => exception AssertHelper.ExpectedException <InvalidOperationException>(() => BindingOperations.SetBinding(view, ValidationHelper.IsValidProperty, binding)); ClearIsValidBinding(view); ValidationHelper.SetIsEnabled(view, true); // Binding must have the mode OneWayToSource => exception AssertHelper.ExpectedException <InvalidOperationException>(() => BindingOperations.SetBinding(view, ValidationHelper.IsValidProperty, binding)); ClearIsValidBinding(view); // Now everything is correct => no exception binding = new Binding(nameof(MockViewModel.IsValid)); binding.Mode = BindingMode.OneWayToSource; BindingOperations.SetBinding(view, ValidationHelper.IsValidProperty, binding); ValidationHelper.InternalSetIsValid(view, false); Assert.IsFalse(ValidationHelper.GetIsValid(view)); }
public void Tests_ValidateProperty_int() { // arrange var target = new MockViewModel {Age = MockViewModel.AgeMinimum}; Assert.False(target.HasPropertyError(() => target.Age)); // act target.Age -= 1; // assert Assert.True(target.HasPropertyError(() => target.Age)); ConsoleWriteErrorMessages(target); // reset target.Age = MockViewModel.AgeMaximum; Assert.False(target.HasPropertyError(() => target.Age)); // act target.Age = MockViewModel.AgeMaximum + 1; // assert Assert.True(target.HasPropertyError(() => target.Age)); ConsoleWriteErrorMessages(target); }
public void Tests_ValidateProperty_string() { // arrange var target = new MockViewModel(); // この時点でエラーが発生しないこと。 // 空文字の状態でエラーになると困るので。 // act // assert Assert.False(target.HasPropertyError(() => target.LastName)); // 文字数制限に引っかかること。 // act target.LastName = Enumerable.Repeat('A', MockViewModel.LastNameMaxLength + 1).ToString(); // assert Assert.True(target.HasPropertyError(() => target.LastName)); ConsoleWriteErrorMessages(target); // 一旦エラーをクリアする。 // act // assert target.LastName = "clear"; Assert.False(target.HasPropertyError(() => target.LastName)); // 空文字でエラーが発生すること。 // act target.LastName = string.Empty; // assert Assert.True(target.HasPropertyError(() => target.LastName)); ConsoleWriteErrorMessages(target); }
internal MockViewWithParameter(MockViewModel vm) { DataContext = vm; }
public async Task NavigateToView() { MockViewModel viewModel = await _navigator.PushAsync <MockViewModel>(_action); Assert.That(viewModel, Is.EqualTo(_viewModel)); }
public void Tests_Validate_SubViewModel() { // arrange var target = new MockViewModel { FirstName = "Test", LastName = "Mock", DayOfWeek = DayOfWeek.Saturday, }; // この時点ではエラーはない。 Assert.False(target.HasErrors); target.SubViewModel.Number = MockSubViewModel.NumberMinimum - 1; // act target.Validate(); // assert // 子ViewModelのエラー結果を検証する。 Assert.True(target.SubViewModel.HasErrors); // 親ViewModelが子ViewModelのエラー結果を保持する。 Assert.True(target.HasErrors); ConsoleWriteErrorMessages(target.SubViewModel); ConsoleWriteErrorMessages(target); }
public async void NavigateToModalView() { MockViewModel viewModel = await _navigator.PushModalAsync <MockViewModel>(_action); Assert.That(viewModel, Is.EqualTo(_viewModel)); }
public ViewModelBaseFixture() { _viewModel = new MockViewModel(); }