コード例 #1
0
        public void TakeClosestElevator_WhenOneElevatorAvailable_ReturnsElevatorAndThenNull()
        {
            // Arrange
            routeValidationServiceMock
            .Setup(x => x.IsFloorNumberCorrect(It.IsAny <int>()))
            .Returns(true);

            buildingConfigurationServiceMock
            .Setup(x => x.GetNumberOfElevators())
            .Returns(1);

            sut = new ElevatorPoolService(
                elevatorEventLogServiceMock.Object,
                buildingConfigurationServiceMock.Object,
                routeValidationServiceMock.Object);

            // Act
            var first  = sut.TakeClosestElevator(1);
            var second = sut.TakeClosestElevator(1);

            // Assert
            Assert.IsNotNull(first);
            Assert.IsNull(second);
            elevatorEventLogServiceMock.Verify(x => x.LogEvent(It.IsAny <ElevatorModel>(), It.IsAny <string>()), Times.Once);
        }
コード例 #2
0
        public void TakeClosestElevator_WhenInvalidFloorProvided_ThrowsException()
        {
            // Arrange
            routeValidationServiceMock
            .Setup(x => x.IsFloorNumberCorrect(It.IsAny <int>()))
            .Returns(false);

            // Act
            sut.TakeClosestElevator(1);

            elevatorEventLogServiceMock.Verify(x => x.LogEvent(It.IsAny <ElevatorModel>(), It.IsAny <string>()), Times.Never);
        }
コード例 #3
0
        public void ReleaseElevator_WhenElevatorIsOccupied_ReleasesElevator()
        {
            // Arrange
            routeValidationServiceMock
            .Setup(x => x.IsFloorNumberCorrect(It.IsAny <int>()))
            .Returns(true);

            buildingConfigurationServiceMock
            .Setup(x => x.GetNumberOfElevators())
            .Returns(1);

            sut = new ElevatorPoolService(
                elevatorEventLogServiceMock.Object,
                buildingConfigurationServiceMock.Object,
                routeValidationServiceMock.Object);

            // Act
            sut.TakeClosestElevator(1);
            sut.ReleaseElevator(0);

            // Assert
            elevatorEventLogServiceMock.Verify(x => x.LogEvent(It.IsAny <ElevatorModel>(), It.IsAny <string>()), Times.Exactly(2));
        }