public async Task StartAsyncShouldReturnCompletedTaskIfCompleted() { var elevatorSystem = new Mock <IElevatorSystem>(); elevatorSystem.Setup(system => system.StartAsync(It.IsAny <CancellationToken>())); var hostedService = new ElevatorSystemHostedService(elevatorSystem.Object, _waiterService); await hostedService.StartAsync() .ContinueWith(t => Assert.Equal(TaskStatus.RanToCompletion, t.Status) ); }
public async Task StopAsyncShouldAbortIfCanceled() { var cts = new CancellationTokenSource(); var elevatorSystem = new Mock <IElevatorSystem>(); elevatorSystem.Setup(system => system.StartAsync(It.IsAny <CancellationToken>())); var hostedService = new ElevatorSystemHostedService(elevatorSystem.Object, _waiterService); cts.Cancel(); await hostedService.StartAsync(); await Assert.ThrowsAsync <OperationCanceledException>(() => hostedService.StopAsync(cts.Token) ); }
public async Task StartAsyncShouldReturnCanceledIfCanceled() { var cts = new CancellationTokenSource(); var elevatorSystem = new Mock <IElevatorSystem>(); var hostedService = new ElevatorSystemHostedService(elevatorSystem.Object, _waiterService); cts.Cancel(); elevatorSystem.Setup(system => system.StartAsync(It.IsAny <CancellationToken>())) .Returns(Task.FromCanceled(cts.Token)); await hostedService.StartAsync(cts.Token) .ContinueWith(t => Assert.Equal(TaskStatus.Canceled, t.Status) ); }