public void ProgressObserver_StartAndStopObserving_ArgChecks()
        {
            // Can't test the overloaded without IProgressVisualizer since using GlobalService to get various services.

            // StartObserving (IProgressController, IProgressVisualizer)
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StartObserving(this.testController, (IProgressVisualizer)null));
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StartObserving((IProgressController)null, this.testVisualizer));
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StartObserving((IProgressController)null, (IProgressVisualizer)null));

            // StartObserving (IServiceProvider, IProgressEvents,IProgressVisualizer)
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StartObserving((IServiceProvider)null, this.progressEvents, this.testVisualizer));
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StartObserving(this.testServiceProvider, this.progressEvents, null));
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StartObserving(this.testServiceProvider, null, this.testVisualizer));
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StartObserving((IServiceProvider)null, (IProgressEvents)null, (IProgressVisualizer)null));

            // StopObserving
            Exceptions.Expect <ArgumentNullException>(() => ProgressObserver.StopObserving(null));

            // Invalid IProgressController
            this.testController.Events.Steps = null;
            Exceptions.Expect <InvalidOperationException>(() => ProgressObserver.StartObserving(this.testController, this.testVisualizer));
            this.testController.Events = null;
            Exceptions.Expect <InvalidOperationException>(() => ProgressObserver.StartObserving(this.testController, this.testVisualizer));

            // Invalid IProgressEvents
            Exceptions.Expect <InvalidOperationException>(() => ProgressObserver.StartObserving(this.testServiceProvider, this.progressEvents, this.testVisualizer));
        }
        public void ProgressObserver_StartObserving_DontConfiguresCancelCommand()
        {
            // Act
            this.testSubject = ProgressObserver.StartObserving(this.testServiceProvider, this.progressEvents, this.testVisualizer);

            // Assert
            this.testSubject.CancelCommand.Should().BeNull("CancelCommand should not be set");
        }
        public void ProgressObserver_StartObserving_DontConfiguresCancelCommand()
        {
            // Execute
            this.testSubject = ProgressObserver.StartObserving(this.testServiceProvider, this.progressEvents, this.testVisualizer);

            // Verify
            Assert.IsNull(this.testSubject.CancelCommand, "CancelCommand should not be set");
        }
        public void ProgressObserver_StopObserving_Twice()
        {
            this.testSubject = ProgressObserver.StartObserving(this.testController, this.testVisualizer);

            ProgressObserver.StopObserving(this.testSubject);
            Assert.IsTrue(this.testSubject.IsDisposed, "Expecting to be disposed");

            ProgressObserver.StopObserving(this.testSubject);
            Assert.IsTrue(this.testSubject.IsDisposed, "Expecting to remain disposed");
        }
        public void ProgressObserver_StartAndStopObserving_OnBackgroundThread()
        {
            this.threadService.SetCurrentThreadIsUIThread(false);

            this.testSubject = ProgressObserver.StartObserving(this.testController, this.testVisualizer);
            Assert.AreSame(this.testVisualizer, this.testSubject.Visualizer, "Unexpected visualizer");
            Assert.IsNotNull(this.testSubject, "Failed to create observer on a background thread");

            Assert.IsFalse(this.testSubject.IsDisposed, "Not expecting to be disposed");
            ProgressObserver.StopObserving(this.testSubject);
            Assert.AreSame(this.testVisualizer, this.testSubject.Visualizer, "Unexpected visualizer");
            Assert.IsTrue(this.testSubject.IsDisposed, "Expecting to be disposed");
        }
        public void ProgressObserver_StartAndStopObserving_OnForegroundThread()
        {
            this.threadService.SetCurrentThreadIsUIThread(true);

            this.testSubject = ProgressObserver.StartObserving(this.testController, this.testVisualizer);
            this.testSubject.Visualizer.Should().Be(this.testVisualizer, "Unexpected visualizer");
            this.testSubject.Should().NotBeNull("Failed to create observer on a foreground thread");

            this.testSubject.IsDisposed.Should().BeFalse("Not expecting to be disposed");
            ProgressObserver.StopObserving(this.testSubject);
            this.testSubject.Visualizer.Should().Be(this.testVisualizer, "Unexpected visualizer");
            this.testSubject.IsDisposed.Should().BeTrue("Expecting to be disposed");
        }
        public void ProgressObserver_StartObserving_ConfiguresCancelCommand()
        {
            bool aborted = false;

            this.testController.TryAbortAction = () =>
            {
                aborted = true;
                return(true);
            };

            this.testSubject = ProgressObserver.StartObserving(this.testController, this.testVisualizer);
            Assert.IsNotNull(this.testSubject.CancelCommand, "CancelCommand should be set");
            this.testSubject.CancelCommand.Execute(null);
            Assert.IsTrue(aborted, "TryAbort was configured to be called by the CancelCommand");
        }
        public void ProgressObserver_StartObserving_StateTransfer()
        {
            var observer = ProgressObserver.StartObserving(this.testController, this.testVisualizer);

            ProgressObserver.StopObserving(observer);
            this.CreateTestSubject(observer.State);

            Assert.AreNotSame(this.testSubject.State, observer, "Test setup error: should be different");
            Assert.AreSame(this.testSubject.State, observer.State, "The state should transfer");
            Assert.IsFalse(this.testSubject.IsDisposed, "Not expecting to be disposed");

            ProgressObserver.StopObserving(this.testSubject);
            Assert.AreSame(this.testVisualizer, this.testSubject.Visualizer, "Unexpected visualizer");
            Assert.IsTrue(this.testSubject.IsDisposed, "Expecting to be disposed");
        }
Exemplo n.º 9
0
 private static ProgressObserver CreateObserver(IProgressController controller, IProgressVisualizer visualizer, ProgressControllerViewModel state)
 {
     return(ProgressObserver.StartObserving(controller, visualizer, state));
 }