public void CanCallSetTargetPressure() { AsyncContext.Run(async() => { decimal actualTargetPressure = 0m; var targetPressure = 1.4m; var instance = new ServiceSimulation(SynchronizationContext.Current); instance.TargetPressure.Subscribe(tp => actualTargetPressure = tp); await instance.SetTargetPressure(targetPressure, CancellationToken.None); actualTargetPressure.Should().Be(targetPressure); }); }
public void CannotCallSetTargetPressureTooHigh() { AsyncContext.Run(async() => { bool targetPressureCalled; var instance = new ServiceSimulation(SynchronizationContext.Current); instance.Pressure.Subscribe(_ => targetPressureCalled = true); // reset offsetCalled because it's a behaviorsubject that will always trigger. targetPressureCalled = false; Func <Task> act = () => instance.SetTargetPressure(2m, CancellationToken.None); await act.Should().ThrowAsync <ArgumentOutOfRangeException>(); targetPressureCalled.Should().BeFalse(); }); }