public void CreateWindow(SomeViewModel vm) { Window win = new Window(); win.DataContext = vm; win.Show(); }
public static async Task <SomeViewModel> Create() { SomeViewModel model = new SomeViewModel(); await model.LoadData(); return(model); }
public void Can_safely_raise_event_even_when_no_subsriptions_were_made() { // Arrange var viewModel = new SomeViewModel(); // Act Assert.DoesNotThrow(() => viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some"))); }
public ActionResult Index() { MakeCallToFunction(); var something = GetSomething(); var somethingElse = GetSomethingElse(something); var model = new SomeViewModel(somethingElse); return(View(model)); }
public SomeWindow() { InitializeComponent(); var viewModel = new SomeViewModel(); viewModel.GenericViewRequested += OnGenericViewRequested; this.DataContext = viewModel; }
public static SomeRelatedStuff Load(int id) { var something = GetSomething(); var somethingElse = GetSomethingElse(something); var model = new SomeViewModel(somethingElse); MakeObject(); return(this); }
public void Can_safely_raise_event_even_when_no_subsriptions_were_made() { // Arrange var viewModel = new SomeViewModel(); // Act Assert.DoesNotThrow(() => viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some"))); }
public void INotifiedPropertyChanged_implementation_can_be_converted_to_reactive() { // Arrange var viewModel = new SomeViewModel(); var someData = viewModel.ToReactive(x => x.SomeData); // Act viewModel.SomeData += 1; // Assert someData.Value.Should().Be(viewModel.SomeData); }
public void When_event_raised_the_Lambda_handler_should_be_called() { // Arrange var viewModel = new SomeViewModel(); var handled = false; viewModel.PropertyChanged += (sender, args) => handled = true; // Act viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert handled.Should().BeTrue(); }
public void When_event_raised_the_Method_handler_should_be_called() { // Arrange var viewModel = new SomeViewModel(); var view = new SomeView(); viewModel.PropertyChanged += view.OnPropertyChanged; // Act viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
public void With_no_subscriptions_should_unsibscribe_without_exception() { // Arrange var viewModel = new SomeViewModel(); PropertyChangedEventHandler propertyChanged = (sender, args) => { }; // Act viewModel.PropertyChanged -= propertyChanged; viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert // No exceptions expected }
public void When_event_raised_the_Method_handler_should_be_called() { // Arrange var viewModel = new SomeViewModel(); var view = new SomeView(); viewModel.PropertyChanged += view.OnPropertyChanged; // Act viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
public void When_event_raised_the_Lambda_handler_should_be_called() { // Arrange var viewModel = new SomeViewModel(); var handled = false; viewModel.PropertyChanged += (sender, args) => handled = true; // Act viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert handled.Should().BeTrue(); }
public ActionResult Index() { var viewModel = new SomeViewModel(); var entities = new DomeinnaambeheerEntities1(); //change the below query accordingly var joinQuery = from d in entities.Domeinnaam join x in entities.X on d.DomeinnaamId equals x.XId join y in entities.Y on d.DomeinnaamId equals y.YId into dom select new { Domeinnaam = dom }; viewModel.Domeinnaam = joinQuery; return(View(viewModel)); }
public void When_event_raised_and_GC_collected_and_despite_that_subscriber_is_still_used_then_the_Method_handler_should_not_be_called() { // Arrange var viewModel = new SomeViewModel(); var view = new SomeView(); viewModel.PropertyChanged += view.OnPropertyChanged; // Act GC.Collect(); viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert view.Observer.IsPropertyChangedHandled.Should().BeFalse(); }
public void Should_dynamic_map_the_object_type() { var displayModel = new DisplayModel { Radius = 300 }; object vm = new SomeViewModel(); Mapper.DynamicMap(displayModel, vm); ((SomeViewModel)vm).Radius.ShouldEqual(300); // fails var vm2 = new SomeViewModel(); Mapper.DynamicMap(displayModel, vm2); vm2.Radius.ShouldEqual(300); // succeeds }
public void When_event_raised_and_GC_collected_and_despite_that_subscriber_is_still_used_then_the_Method_handler_should_not_be_called() { // Arrange var viewModel = new SomeViewModel(); var view = new SomeView(); viewModel.PropertyChanged += view.OnPropertyChanged; // Act GC.Collect(); viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert view.Observer.IsPropertyChangedHandled.Should().BeFalse(); }
public void Reactive_created_from_INotifiedPropertyChanged_should_not_notify_on_non_wrapped_property_change() { // Arrange var viewModel = new SomeViewModel(); var someData = viewModel.ToReactive(v => v.SomeData); var notified = false; someData.PropertyChanged += (sender, args) => notified = true; // Act viewModel.OtherData += 1; // Assert notified.Should().BeFalse(); }
internal TimeSpan SubcribeAsUsual(int times) { var someView = new SomeView(); var someViewModel = new SomeViewModel(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < times; i++) { someViewModel.PropertyChanged += someView.OnPropertyChanged; } stopwatch.Stop(); return stopwatch.Elapsed; }
internal TimeSpan NotifyMethodsWithReflection(int times) { var view = new SomeView(); var viewModel = new SomeViewModel(); viewModel.SubscribeWeakly(x => x.Flag, view.OnFlagChanged); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < times; i++) viewModel.NotifyPropertyChanged(); stopwatch.Stop(); return stopwatch.Elapsed; }
public void PropertyChanged_event_handler_should_be_called_when_GC_collected_and_subscriber_is_used_aftrewards() { // Arrange var view = new SomeView(); var viewModel = new SomeViewModel(); viewModel.SubscribeWeakly(view, (x, _, e) => x.OnPropertyChanged()); // Act GC.Collect(); viewModel.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
internal TimeSpan SubcribeAsUsual(int times) { var someView = new SomeView(); var someViewModel = new SomeViewModel(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < times; i++) { someViewModel.PropertyChanged += someView.OnPropertyChanged; } stopwatch.Stop(); return(stopwatch.Elapsed); }
internal TimeSpan SubcribeMethodsWithReflection(int times) { var view = new SomeView(); var viewModel = new SomeViewModel(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < times; i++) { viewModel.SubscribeWeakly(x => x.Flag, view.OnFlagChanged); } stopwatch.Stop(); return(stopwatch.Elapsed); }
internal TimeSpan SubcribeHandlers(int times) { var view = new SomeView(); var viewModel = new SomeViewModel(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < times; i++) { viewModel.SubscribeWeakly(view, (v, m, e) => v.OnFlagChanged(false)); } stopwatch.Stop(); return(stopwatch.Elapsed); }
public void When_Lambda_handler_is_unsubscribed_and_event_raised_then_the_handler_should_not_be_called() { // Arrange var viewModel = new SomeViewModel(); var handled = false; PropertyChangedEventHandler onPropertyChanged = (sender, args) => handled = true; viewModel.PropertyChanged += onPropertyChanged; // Act viewModel.PropertyChanged -= onPropertyChanged; viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert handled.Should().BeFalse(); }
public void Should_dynamic_map_the_object_type() { var displayModel = new DisplayModel { Radius = 300 }; object vm = new SomeViewModel(); Mapper.DynamicMap(displayModel, vm); ((SomeViewModel)vm).Radius.ShouldEqual(300); // fails var vm2 = new SomeViewModel(); Mapper.DynamicMap(displayModel, vm2); vm2.Radius.ShouldEqual(300); // succeeds }
public void Should_map_the_object_type() { var displayModel = new DisplayModel { Radius = 300 }; object vm = new SomeViewModel(); var config = new MapperConfiguration(cfg => cfg.CreateMap<DisplayModel, SomeViewModel>()); var mapper = config.CreateMapper(); mapper.Map(displayModel, vm); ((SomeViewModel)vm).Radius.ShouldEqual(300); // fails var vm2 = new SomeViewModel(); mapper.Map(displayModel, vm2); vm2.Radius.ShouldEqual(300); // succeeds }
public void Should_map_the_object_type() { var displayModel = new DisplayModel { Radius = 300 }; object vm = new SomeViewModel(); Mapper.CreateMap <DisplayModel, SomeViewModel>(); Mapper.Map(displayModel, vm); ((SomeViewModel)vm).Radius.ShouldBe(300); // fails var vm2 = new SomeViewModel(); Mapper.Map(displayModel, vm2); vm2.Radius.ShouldBe(300); // succeeds }
public void Delegate_event_handler_should_be_called_when_subscriber_not_GC_collected() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); SubscribeWeakly.OnCustomDelegate <PropertyChangedEventHandler, PropertyChangedEventArgs, SomeView>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view, (v, sender, args) => v.OnPropertyChanged()); // Act model.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
public PartialViewResult AddSomeInfo(SomeViewModel viewModel) { if (!ModelState.IsValid) { // ... handle } else { // Included this line for valid model state handling ModelState.Clear(); // then persist, etc // then change view model viewModel.Id = model.id; viewModel.createdOn = model.created_on; } // then returning the view model to the same partial should now work return(PartialView("SomeInfo", viewModel)); }
public void Delegate_event_method_handler_should_not_be_called_when_subscription_disposed() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); var subscription = SubscribeWeakly.OnCustomDelegate <PropertyChangedEventHandler, PropertyChangedEventArgs>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view.OnPropertyChanged); // Act subscription.Dispose(); model.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeFalse(); }
public void Should_map_the_object_type() { var displayModel = new DisplayModel { Radius = 300 }; object vm = new SomeViewModel(); var config = new MapperConfiguration(cfg => cfg.CreateMap <DisplayModel, SomeViewModel>()); var mapper = config.CreateMapper(); mapper.Map(displayModel, vm); ((SomeViewModel)vm).Radius.ShouldBe(300); // fails var vm2 = new SomeViewModel(); mapper.Map(displayModel, vm2); vm2.Radius.ShouldBe(300); // succeeds }
public void Delegate_event_method_handler_should_be_called_when_GC_collected_and_subscriber_is_used_aftrewards() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); SubscribeWeakly.OnCustomDelegate <PropertyChangedEventHandler, PropertyChangedEventArgs>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view.OnPropertyChanged); // Act GC.Collect(); model.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
public void When_GC_collected_and_then_I_subscribe_then_already_dead_subscribers_should_be_removed() { // Arrange var viewModel = new SomeViewModel(); var x = 0; viewModel.PropertyChanged += (sender, args) => ++ x; var y = "1"; viewModel.PropertyChanged += (sender, args) => y += 1; viewModel.InternalPropertyChanged.HandlerCount.Should().Be(2); // Act GC.Collect(); viewModel.PropertyChanged += (sender, args) => { }; // Assert viewModel.InternalPropertyChanged.HandlerCount.Should().Be(1); }
public void PropertyChanged_event_handler_should_not_be_called_when_GC_collected_and_subscriber_is_not_used_aftrewards() { // Arrange var view = new SomeView(); var viewModel = new SomeViewModel(); viewModel.SubscribeWeakly(view, (x, _, e) => x.OnPropertyChanged()); // Act var observer = view.Observer; // ReSharper disable RedundantAssignment view = null; // ReSharper restore RedundantAssignment GC.Collect(); viewModel.NotifyPropertyChanged(); // Assert observer.IsPropertyChangedHandled.Should().BeFalse(); }
public PartialViewResult AddSomeInfo(SomeViewModel viewModel) { // this is where I am checking if my view model is alright // and then the "issue" will occur if (!ModelState.IsValid) { // ... handle } else { // I was doing "normal stuff" like // translating view model to an entity (let's call it model) // committing changes with some ORM and get and id and timestamp back // and naturally assign these values to the view model viewModel.Id = model.id; viewModel.createdOn = model.created_on; } // then return the same view and same model **types** of the request return(PartialView("SomeInfo", viewModel)); }
public void OnClose_ShouldJustHide() { //---------------Set up test pack------------------- var windowManager = new WindowManager(); var sut = new SomeViewModel(); var args = new CancelEventArgs() { Cancel = false }; //---------------Assert Precondition---------------- windowManager.ShowWindow(sut); Assert.IsTrue(sut.GetWindow().IsActive); Assert.IsTrue(sut.GetWindow().IsVisible); //---------------Execute Test ---------------------- sut.OnClose(new object(), args); //---------------Test Result ----------------------- Assert.IsTrue(args.Cancel); Assert.IsFalse(sut.GetWindow().IsVisible); }
public void Delegate_event_method_handler_should_not_be_called_when_GC_collected_and_subscriber_is_not_used_aftrewards() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); SubscribeWeakly.OnCustomDelegate <PropertyChangedEventHandler, PropertyChangedEventArgs>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view.OnPropertyChanged); // Act var observer = view.Observer; // ReSharper disable RedundantAssignment view = null; // ReSharper restore RedundantAssignment GC.Collect(); model.NotifyPropertyChanged(); // Assert observer.IsPropertyChangedHandled.Should().BeFalse(); }
public void Delegate_event_method_handler_should_not_be_called_when_GC_collected_and_subscriber_is_not_used_aftrewards() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); SubscribeWeakly.OnCustomDelegate<PropertyChangedEventHandler, PropertyChangedEventArgs>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view.OnPropertyChanged); // Act var observer = view.Observer; // ReSharper disable RedundantAssignment view = null; // ReSharper restore RedundantAssignment GC.Collect(); model.NotifyPropertyChanged(); // Assert observer.IsPropertyChangedHandled.Should().BeFalse(); }
public void When_Lambda_handler_is_unsubscribed_and_event_raised_then_the_handler_should_not_be_called() { // Arrange var viewModel = new SomeViewModel(); var handled = false; PropertyChangedEventHandler onPropertyChanged = (sender, args) => handled = true; viewModel.PropertyChanged += onPropertyChanged; // Act viewModel.PropertyChanged -= onPropertyChanged; viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert handled.Should().BeFalse(); }
internal TimeSpan SubcribeHandlers(int times) { var view = new SomeView(); var viewModel = new SomeViewModel(); var stopwatch = Stopwatch.StartNew(); for (var i = 0; i < times; i++) viewModel.SubscribeWeakly(view, (v, m, e) => v.OnFlagChanged(false)); stopwatch.Stop(); return stopwatch.Elapsed; }
public void With_no_subscriptions_should_unsibscribe_without_exception() { // Arrange var viewModel = new SomeViewModel(); PropertyChangedEventHandler propertyChanged = (sender, args) => { }; // Act viewModel.PropertyChanged -= propertyChanged; viewModel.NotifyPropertyChanged(new PropertyChangedEventArgs("some")); // Assert // No exceptions expected }
public void Delegate_event_handler_should_be_called_when_subscriber_not_GC_collected() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); SubscribeWeakly.OnCustomDelegate<PropertyChangedEventHandler, PropertyChangedEventArgs, SomeView>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view, (v, sender, args) => v.OnPropertyChanged()); // Act model.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
public void PropertyChanged_event_handler_should_not_be_called_when_GC_collected_and_subscriber_is_not_used_aftrewards() { // Arrange var view = new SomeView(); var viewModel = new SomeViewModel(); viewModel.SubscribeWeakly(view, (x, _, e) => x.OnPropertyChanged()); // Act var observer = view.Observer; // ReSharper disable RedundantAssignment view = null; // ReSharper restore RedundantAssignment GC.Collect(); viewModel.NotifyPropertyChanged(); // Assert observer.IsPropertyChangedHandled.Should().BeFalse(); }
public void PropertyChanged_event_handler_should_be_called_when_GC_collected_and_subscriber_is_used_aftrewards() { // Arrange var view = new SomeView(); var viewModel = new SomeViewModel(); viewModel.SubscribeWeakly(view, (x, _, e) => x.OnPropertyChanged()); // Act GC.Collect(); viewModel.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
public void Delegate_event_method_handler_should_be_called_when_GC_collected_and_subscriber_is_used_aftrewards() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); SubscribeWeakly.OnCustomDelegate<PropertyChangedEventHandler, PropertyChangedEventArgs>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view.OnPropertyChanged); // Act GC.Collect(); model.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeTrue(); }
public void Delegate_event_method_handler_should_not_be_called_when_subscription_disposed() { // Arrange var view = new SomeView(); var model = new SomeViewModel(); var subscription = SubscribeWeakly.OnCustomDelegate<PropertyChangedEventHandler, PropertyChangedEventArgs>( a => a.Invoke, h => model.PropertyChanged += h, h => model.PropertyChanged -= h, view.OnPropertyChanged); // Act subscription.Dispose(); model.NotifyPropertyChanged(); // Assert view.Observer.IsPropertyChangedHandled.Should().BeFalse(); }
public void INotifiedPropertyChanged_implementation_can_be_converted_to_reactive() { // Arrange var viewModel = new SomeViewModel(); var someData = viewModel.ToReactive(x => x.SomeData); // Act viewModel.SomeData += 1; // Assert someData.Value.Should().Be(viewModel.SomeData); }
public void Reactive_created_from_INotifiedPropertyChanged_should_not_notify_on_non_wrapped_property_change() { // Arrange var viewModel = new SomeViewModel(); var someData = viewModel.ToReactive(v => v.SomeData); var notified = false; someData.PropertyChanged += (sender, args) => notified = true; // Act viewModel.OtherData += 1; // Assert notified.Should().BeFalse(); }
public void When_GC_collected_and_then_I_subscribe_then_already_dead_subscribers_should_be_removed() { // Arrange var viewModel = new SomeViewModel(); var x = 0; viewModel.PropertyChanged += (sender, args) => ++x; var y = "1"; viewModel.PropertyChanged += (sender, args) => y += 1; viewModel.InternalPropertyChanged.HandlerCount.Should().Be(2); // Act GC.Collect(); viewModel.PropertyChanged += (sender, args) => { }; // Assert viewModel.InternalPropertyChanged.HandlerCount.Should().Be(1); }