Exemplo n.º 1
0
        public ElevatorRequestHandler Create(Elevator elevator)
        {
            var elevatorMover          = new ElevatorMover(elevator, _logger, _waiterService);
            var elevatorRequestHandler = new ElevatorRequestHandler(_requestQueue, elevatorMover);

            return(elevatorRequestHandler);
        }
Exemplo n.º 2
0
        public async Task HandleRequestsAsyncShouldMoveElevatorToCorrectFloor(ElevatorRequest request)
        {
            _queue.Setup(q => q.ReadAllAsync(It.IsAny <CancellationToken>()))
            .Returns(GetRequestAsAsyncEnumerable(request));
            var elevatorMover = new ElevatorMover(
                new Elevator(), _movementLogger.Object, _waiterService.Object
                );
            var requestHandler = new ElevatorRequestHandler(
                _queue.Object,
                elevatorMover
                );

            await requestHandler.HandleRequestsAsync();

            Assert.Equal(request.ToFloor, elevatorMover.Elevator.CurrentFloor);
        }
Exemplo n.º 3
0
        public async Task CollectAndHandleRequestsAsyncShouldAbortIfCanceled()
        {
            var cts = new CancellationTokenSource();

            _queue.Setup(q => q.ReadAllAsync(cts.Token))
            .Throws <TaskCanceledException>();
            var elevatorMover = new ElevatorMover(
                new Elevator(), _movementLogger.Object, _waiterService.Object
                );
            var requestHandler = new ElevatorRequestHandler(
                _queue.Object,
                elevatorMover
                );

            cts.Cancel();

            await Assert.ThrowsAsync <TaskCanceledException>(() =>
                                                             requestHandler.HandleRequestsAsync(cts.Token)
                                                             );
        }