public void GroupDisposable_Contains() { var d1 = Disposable.Create(() => {}); var d2 = Disposable.Create(() => { }); var g = new CompositeDisposable(d1, d2); Assert.AreEqual(2, g.Count); Assert.IsTrue(g.Contains(d1)); Assert.IsTrue(g.Contains(d2)); }
public void CompositeDisposable_Add() { var d1 = Disposable.Create(() => { }); var d2 = Disposable.Create(() => { }); var g = new CompositeDisposable(d1); Assert.Equal(1, g.Count); Assert.True(g.Contains(d1)); g.Add(d2); Assert.Equal(2, g.Count); Assert.True(g.Contains(d2)); }
public void CompositeDisposable_CollectionInitializer() { var d1 = Disposable.Create(() => { }); var d2 = Disposable.Create(() => { }); var g = new CompositeDisposable { d1, d2 }; Assert.Equal(2, g.Count); Assert.True(g.Contains(d1)); Assert.True(g.Contains(d2)); }
public void CompositeDisposable_Contains() { var d1 = Disposable.Create(() => {}); var d2 = Disposable.Create(() => { }); var g = new CompositeDisposable(d1, d2); Assert.Equal(2, g.Count); Assert.True(g.Contains(d1)); Assert.True(g.Contains(d2)); ReactiveAssert.Throws <ArgumentNullException>(() => g.Contains(null)); }
public void Add(IDisposable dispose) { if (dispose != null && !disposes.Contains(dispose)) { disposes.Add(dispose); } }
public void CompositeDisposableTests_DisposeTest() { bool disposed = false; using (var compositeDisposable = new CompositeDisposable()) { var item = new SIDisposable(); compositeDisposable.Add(item); Assert.AreEqual(1, compositeDisposable.Count); compositeDisposable.Remove(item); Assert.AreEqual(0, compositeDisposable.Count); compositeDisposable.Add(item); Assert.AreEqual(1, compositeDisposable.Count); Assert.AreEqual(item, compositeDisposable[0]); compositeDisposable[0] = new SIDisposable(); Assert.AreNotEqual(item, compositeDisposable[0]); compositeDisposable.Clear(); Assert.AreEqual(0, compositeDisposable.Count); compositeDisposable.Add(item); Assert.IsTrue(compositeDisposable.Contains(item)); item.DisposeAction = () => disposed = true; } Assert.IsTrue(disposed); }
public void CompositeDisposable_Remove() { var disp1 = false; var disp2 = false; var d1 = Disposable.Create(() => { disp1 = true; }); var d2 = Disposable.Create(() => { disp2 = true; }); var g = new CompositeDisposable(d1, d2); Assert.Equal(2, g.Count); Assert.True(g.Contains(d1)); Assert.True(g.Contains(d2)); Assert.True(g.Remove(d1)); Assert.Equal(1, g.Count); Assert.False(g.Contains(d1)); Assert.True(g.Contains(d2)); Assert.True(disp1); Assert.True(g.Remove(d2)); Assert.False(g.Contains(d1)); Assert.False(g.Contains(d2)); Assert.True(disp2); var disp3 = false; var d3 = Disposable.Create(() => { disp3 = true; }); Assert.False(g.Remove(d3)); Assert.False(disp3); }
public void CompositeDisposable_Disposed_Is_NoOp() { var d = new BooleanDisposable(); var composite = new CompositeDisposable(d); composite.Dispose(); composite.Clear(); Assert.False(composite.Contains(d)); var array = new IDisposable[1]; composite.CopyTo(array, 0); Assert.Null(array[0]); }
void InitChannelControl(DeviceChannelControl channControl, ChannelDescription chan, SourcesArgs args, string proftoken = null) { //try to remove and clear all needed data if (channControl.Content is IDisposable) { var disp = channControl.Content as IDisposable; //try to remove content from disposables collection if (disposables.Contains(disp)) { disposables.Remove(disp); } //dispose existing control disp.Dispose(); } //Begin load channels section disposables.Add(SourceView.Load(chan, args.capabilities, args.nvtSession, args.odmSession, proftoken) .ObserveOnCurrentDispatcher() .Subscribe(sourceArgs => { if (sourceArgs.selectedProfile != null) { channControl.Title = sourceArgs.channelDescr.videoSource.token + ": " + sourceArgs.selectedProfile.name; } else { channControl.Title = sourceArgs.channelDescr.videoSource.token; } SourceView sourceView = new SourceView(container); disposables.Add(sourceView); sourceView.Init(sourceArgs); channControl.Content = sourceView; }, err => { ErrorView errorView = new ErrorView(err); disposables.Add(errorView); channControl.Content = errorView; } )); }
void InitEngineControl(DeviceEngineControl engineControl, AnalyticsEngine engine, AnalyticsArgs args, string ctrltoken = null) { //try to remove and clear all needed data if (engineControl.Content is IDisposable) { var disp = engineControl.Content as IDisposable; //try to remove content from disposables collection if (disposables.Contains(disp)) { disposables.Remove(disp); } //dispose existing control disp.Dispose(); } //Begin load channels section disposables.Add(EnginesView.Load(engine, args.capabilities, args.nvtSession, args.odmSession, ctrltoken) .ObserveOnCurrentDispatcher() .Subscribe(ctrlArgs => { if (ctrlArgs.selectedEngineControl != null) { engineControl.Title = ctrlArgs.engine.name + ": " + ctrlArgs.selectedEngineControl.name; } else { engineControl.Title = ctrlArgs.engine.name; } EnginesView enginesView = new EnginesView(container); disposables.Add(enginesView); enginesView.Init(ctrlArgs); engineControl.Content = enginesView; }, err => { ErrorView errorView = new ErrorView(err); disposables.Add(errorView); engineControl.Content = errorView; } )); }
/// <summary> /// Returns whether the <see cref="ViewModel"/> contains the specified <paramref name="disposable"/>. /// </summary> /// <param name="disposable">The disposable to search for.</param> /// <returns><see langword="True"/> if the specified <paramref name="disposable"/> is contained by the <see cref="ViewModel"/>; otherwise, /// <see langword="false"/>.</returns> protected bool ContainsDisposable(IDisposable disposable) { return(disposables.Contains(disposable)); }
bool ICollection <IDisposable> .Contains(IDisposable item) => _disposables.Contains(item);