Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
 public void Add(IDisposable dispose)
 {
     if (dispose != null && !disposes.Contains(dispose))
     {
         disposes.Add(dispose);
     }
 }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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]);
        }
Ejemplo n.º 9
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;
            }
                                       ));
        }
Ejemplo n.º 10
0
        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;
            }
                                       ));
        }
Ejemplo n.º 11
0
 /// <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));
 }
Ejemplo n.º 12
0
 bool ICollection <IDisposable> .Contains(IDisposable item) => _disposables.Contains(item);