public void Validate_IncorrectVewModel_Fails() { Assert.True(AopInpcFactory.Validate(typeof(ViewModel))); Assert.False(AopInpcFactory.Validate(typeof(NonVirtualPropViewModel))); Assert.False(AopInpcFactory.Validate(typeof(NonPublicPropGetterViewModel))); Assert.False(AopInpcFactory.Validate(typeof(NonPublicPropSetterViewModel))); }
public void Create_PropWithoutInpcAttribute_InpcCallIsNotInjected() { var injectedVm = AopInpcFactory.Create <ViewModel>(); injectedVm.PropertyChanged += (sender, args) => throw new InvalidOperationException(args.PropertyName); injectedVm.Prop = 5; }
public void Decorate_PropWithInpcAttribute_InpcCallInjected() { var injectedVm = AopInpcFactory.Decorate(new ViewModel()); injectedVm.PropertyChanged += (sender, args) => throw new InvalidOperationException(args.PropertyName); var ex = Assert.Throws <InvalidOperationException>(() => injectedVm.InjectProp = 5); Assert.Equal(nameof(ViewModel.InjectProp), ex.Message); }
public void Create_NullAsEmptyCtorArgument_InpcCallInjected() { var injectedVm = AopInpcFactory.Create <ViewModel>(null); injectedVm.PropertyChanged += (sender, args) => throw new InvalidOperationException(args.PropertyName); var ex = Assert.Throws <InvalidOperationException>(() => injectedVm.InjectProp = 5); Assert.Equal(nameof(ViewModel.InjectProp), ex.Message); }
public void Decorate_NullAsTarget_Fails() { ViewModel viewModel = null; Assert.Throws <ArgumentNullException>(() => AopInpcFactory.Decorate(viewModel)); }