public ViewAwareViewModel() { View = new ViewSink(); this.WhenLoaded(d => { IsLoadedCount++; d(Disposable.Create(() => IsLoadedCount--)); }); }
public void UnloadingIgnoringRefCountTicksOnViewUnloadedObservable() { var viewSink = new ViewSink(); viewSink.OnViewUnloaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var unloaded).Subscribe(); viewSink.ViewUnloaded(true); Assert.Equal(1, unloaded.Count); }
public void IgnoringCountDoesntTickOnViewUnloadedObservable() { var viewSink = new ViewSink(); viewSink.OnViewUnloaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var unloaded).Subscribe(); viewSink.ViewUnloaded(false); Assert.Equal(0, unloaded.Count); }
public void LoadingTicksOnViewLoadedObservable() { var viewSink = new ViewSink(); viewSink.OnViewLoaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var loaded).Subscribe(); viewSink.ViewLoaded(); Assert.Equal(1, loaded.Count); }
public void DisposingAfterLoadingTicksOnViewUnloadedObservable() { var viewSink = new ViewSink(); viewSink.OnViewLoaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var loaded).Subscribe(); viewSink.OnViewUnloaded.ToObservableChangeSet(ImmediateScheduler.Instance).Bind(out var unloaded).Subscribe(); using (viewSink.ViewLoaded()) { Assert.Equal(1, loaded.Count); Assert.Equal(0, unloaded.Count); } Assert.Equal(1, loaded.Count); Assert.Equal(1, unloaded.Count); }