public void OverridingPropertyTest() { Assert.True(typeof(INotifyPropertyChanged).IsAssignableFrom(typeof(POCOViewModel))); Assert.True(typeof(ISupportParentViewModel).IsAssignableFrom(typeof(POCOViewModel))); Assert.False(typeof(IPOCOViewModel).IsAssignableFrom(typeof(POCOViewModel))); Assert.False(typeof(IDataErrorInfo).IsAssignableFrom(typeof(POCOViewModel))); var viewModel = POCOViewModel.Create(); Assert.Equal(viewModel.GetType(), viewModel.GetType().GetProperty("Property1").DeclaringType); CheckBindableProperty(viewModel, x => x.Property1, (vm, x) => vm.Property1 = x, "x", "y"); CheckBindableProperty(viewModel, x => x.Property2, (vm, x) => vm.Property2 = x, "m", "n"); CheckBindableProperty(viewModel, x => x.Property3, (vm, x) => vm.Property3 = x, "a", "b"); CheckBindableProperty(viewModel, x => x.Property4, (vm, x) => vm.Property4 = x, 1, 2); CheckBindableProperty(viewModel, x => x.Property5, (vm, x) => vm.Property5 = x, new Point(1, 1), new Point(2, 2)); CheckBindableProperty(viewModel, x => x.Property6, (vm, x) => vm.Property6 = x, 5, null); CheckBindableProperty(viewModel, x => x.ProtectedSetterProperty, (vm, x) => vm.SetProtectedSetterProperty(x), "x", "y"); Assert.Null(viewModel.GetType().GetProperty("ProtectedSetterProperty").GetSetMethod()); CheckBindableProperty(viewModel, x => x.ProtectedInternalSetterProperty, (vm, x) => vm.ProtectedInternalSetterProperty = x, "x", "y"); Assert.Null(viewModel.GetType().GetProperty("ProtectedInternalSetterProperty").GetSetMethod()); CheckBindableProperty(viewModel, x => x.InternalSetterProperty, (vm, x) => vm.InternalSetterProperty = x, "x", "y"); CheckNotBindableProperty(viewModel, x => x.NotVirtualProperty, (vm, x) => vm.NotVirtualProperty = x, "x", "y"); CheckNotBindableProperty(viewModel, x => x.NotVirtualPropertyWithPrivateSetter, (vm, x) => vm.NotVirtualPropertyWithPrivateSetter = x, "x", "y"); CheckNotBindableProperty(viewModel, x => x.NotPublicProperty, (vm, x) => vm.NotPublicProperty = x, "x", "y"); CheckNotBindableProperty(viewModel, x => x.ProtectedGetterProperty, (vm, x) => vm.ProtectedGetterProperty = x, "x", "y"); CheckNotBindableProperty(viewModel, x => x.NotAutoImplementedProperty, (vm, x) => vm.NotAutoImplementedProperty = x, "x", "y"); }
public void GetSetParentViewModel() { var viewModel = POCOViewModel.Create(); Assert.Null(viewModel.GetParentViewModel <Type>()); var type = GetType(); Assert.Same(viewModel, viewModel.SetParentViewModel(type)); Assert.Equal(type, viewModel.GetParentViewModel <Type>()); Assert.Null(viewModel.OldParentViewModel); type = typeof(object); Assert.Same(viewModel, viewModel.SetParentViewModel(type)); Assert.Equal(type, viewModel.GetParentViewModel <Type>()); Assert.Same(GetType(), viewModel.OldParentViewModel); }
public void RaisePropertyChangedImplementation() { var viewModel = POCOViewModel.Create(); string propertyName = null; ((INotifyPropertyChanged)viewModel).PropertyChanged += (o, e) => propertyName = e.PropertyName; viewModel.RaisePropertyChangedInternal(x => x.Property1); Assert.Equal("Property1", propertyName); viewModel.RaisePropertyChangedInternal(x => x.Property5); Assert.Equal("Property5", propertyName); viewModel.RaisePropertiesChanged(); Assert.Equal(string.Empty, propertyName); viewModel.RaisePropertyChanged(x => x.Property1); Assert.Equal("Property1", propertyName); }
public void SupportServicesPOCOModel() { CheckServicesImplementation(POCOViewModel.Create()); }