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); }
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); }
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)); }