public void PostDoorState_ShouldEnqueueProperCommand(bool open) { //Arrange var elevatorId = _fixture.Create <int>(); var destinationId = _fixture.Create <int>(); string resultQueueId = string.Empty; ElevatorCommandBase resultAction = null; _elevatorMessagePublisher .Setup(s => s.EnqueueRequest(It.IsAny <string>(), It.IsAny <ElevatorCommandBase>())) .Callback <string, ElevatorCommandBase>((id, action) => { resultQueueId = id; resultAction = action; }); var expectedAction = open ? ElevatorCommandType.OpenDoor : ElevatorCommandType.CloseDoor; //Act _sut.EnqueueDoorState(elevatorId, open); //Assert resultQueueId.Should().Be(ElevatorsMessagingHelper.GetQueueId(elevatorId)); resultAction.Should().NotBeNull(); resultAction.ElevatorId.Should().Be(elevatorId); resultAction.ActionType.Should().Be(expectedAction); }
public void EnqueueDoorState(int elevatorId, bool isOpen) { _elevatorsValidationHelper.ValidateElevatorId(elevatorId); var action = new ElevatorCommandBase { ElevatorId = elevatorId, ActionType = isOpen ? ElevatorCommandType.OpenDoor : ElevatorCommandType.CloseDoor }; _elevatorMessagePublisher.EnqueueRequest(ElevatorsMessagingHelper.GetQueueId(elevatorId), action); }