public void ThrowsAnExceptionWhenStoppingWhileInTheErrorState() { using var target = new StubProcessor(); target.SetState(ProcessorState.Error); Assert.Throws <RuntimeException>(() => target.Stop()); }
public void ChangeToAnErrorStateWhenExceptionThrownDuringStart() { using var target = new StubProcessor(); target.SetupCallbacks(() => throw new Exception("This is a test exception")); Assert.Throws <Exception>(() => target.Start()); Assert.AreEqual(ProcessorState.Error, target.State); }
public void StoppingTwiceThrowsAnException() { using var target = new StubProcessor(); target.Start(); target.Stop(); Assert.Throws <RuntimeException>(() => target.Stop()); }
public void ThrowsAnExceptionWhenStoppedAfterDisposed() { var target = new StubProcessor(); target.Dispose(); Assert.Throws <ObjectDisposedException>(() => target.Stop()); }
public void ThrowAnExceptionWhenTheProcessorIsAlreadyStarted() { using var target = new StubProcessor(); target.Start(); Assert.AreEqual(ProcessorState.Started, target.State); Assert.Throws <RuntimeException>(() => target.ExecuteGuardMustNotAlreadyBeStarted()); }
public void DisposeOfAProcessorThatIsNeverStarted() { var called = false; var target = new StubProcessor(); target.SetupCallbacks(onDispose: () => called = true); target.Dispose(); Assert.IsTrue(called); }
public void ChangeTheProcessorStatesDuringStart() { var tested = false; using var target = new StubProcessor(); target.SetupCallbacks(() => { Assert.AreEqual(ProcessorState.Starting, target.State); tested = true; }); target.Start(); Assert.True(tested); Assert.AreEqual(ProcessorState.Started, target.State); }
public void SetsTheNamePropertyDuringInitialization() { using var target = new StubProcessor("Test"); Assert.AreEqual("Test", target.Name); }
public void ReturnsTheCreatedStateUponNew() { using var target = new StubProcessor(); Assert.AreEqual(ProcessorState.Created, target.State); }