Exemple #1
0
        [InlineData(3, "Elevator 2")] //Immediate down floor
        public void GivenTwoElevatorsThreeFloorsOneInFirstFloorOneInSecond_WhenRequestIsRaised_ThenNearestOneIsReturned(int floor, string expectedElevator)
        {
            //Arrange
            var floors = new SortedList <int, Floor>()
            {
                { 1, new Floor(1) }
            };
            ElevatorPicker elevatorPicker = new ElevatorPicker();

            var elevatorOne = new Mock <Elevator>(floors, "Elevator 1");

            elevatorOne.Setup(elevator => elevator.Name).Returns(() => "Elevator 1");
            elevatorOne.Setup(elevator => elevator.CurrentFloor).Returns(() => 1);
            elevatorOne.Setup(elevator => elevator.State).Returns(() => ElevatorState.Stopped);

            var elevatorTwo = new Mock <Elevator>(floors, "Elevator 2");

            elevatorTwo.Setup(elevator => elevator.Name).Returns(() => "Elevator 2");
            elevatorTwo.Setup(elevator => elevator.CurrentFloor).Returns(() => 2);
            elevatorTwo.Setup(elevator => elevator.State).Returns(() => ElevatorState.Stopped);

            List <Elevator> elevators = new List <Elevator>();

            elevators.Add(elevatorOne.Object);
            elevators.Add(elevatorTwo.Object);

            //Act
            Elevator elevatorReturned = elevatorPicker.GetSutableElevator(minFloor: 0, maxfloor: 3, floorNumber: floor, requestDirection: FloorRequestDirection.UP, elevatorsList: elevators);


            //Assert
            Assert.Equal(expectedElevator, elevatorReturned.Name);
        }
Exemple #2
0
        public void GivenMultipleElevatorsInSameFloor_WhenRequestIsRaised_ThenNearestAndPrefrredStateElevatorIsSelected(int floor, FloorRequestDirection floorRequestDirection, int goingUpElevatorFloor, int goingDownElevatorFloor, int stoppedElevatorFloor, string expectedElevator)
        {
            //Arrange
            var floors = new SortedList <int, Floor>()
            {
                { 1, new Floor(1) }
            };
            ElevatorPicker elevatorPicker = new ElevatorPicker();

            var elevatorOne = new Mock <Elevator>(floors, "");

            elevatorOne.Setup(elevator => elevator.Name).Returns(() => "Elevator 1");
            elevatorOne.Setup(elevator => elevator.CurrentFloor).Returns(() => goingUpElevatorFloor);
            elevatorOne.Setup(elevator => elevator.State).Returns(() => ElevatorState.GoingUp);

            var elevatorTwo = new Mock <Elevator>(floors, "");

            elevatorTwo.Setup(elevator => elevator.Name).Returns(() => "Elevator 2");
            elevatorTwo.Setup(elevator => elevator.CurrentFloor).Returns(() => goingDownElevatorFloor);
            elevatorTwo.Setup(elevator => elevator.State).Returns(() => ElevatorState.GoingDown);

            var elevatorThree = new Mock <Elevator>(floors, "");

            elevatorThree.Setup(elevator => elevator.Name).Returns(() => "Elevator 3");
            elevatorThree.Setup(elevator => elevator.CurrentFloor).Returns(() => stoppedElevatorFloor);
            elevatorThree.Setup(elevator => elevator.State).Returns(() => ElevatorState.Stopped);

            List <Elevator> elevators = new List <Elevator>();

            elevators.Add(elevatorOne.Object);
            elevators.Add(elevatorTwo.Object);
            elevators.Add(elevatorThree.Object);


            //Act
            Elevator elevatorReturned = elevatorPicker.GetSutableElevator(minFloor: -2, maxfloor: 10, floorNumber: floor, requestDirection: floorRequestDirection, elevatorsList: elevators);


            //Assert
            Assert.Equal(expectedElevator, elevatorReturned.Name);
        }