public void CanDrive_ShouldReturnFalse_WhenDateIsARestrictedDayAndTimeIsARestrictedTime() { var plateNumber = "XXXX-XXX1"; var mondayDate = "16/09/2019"; var restrictedTime = "08:00"; var drivingRestrictions = new List <DrivingRestriction> { new DrivingRestriction { PlateNumber = "1", NoDriveDay = new NoDriveDay { DayName = "MONDAY" }, NoDriveTimes = new List <NoDriveTime> { new NoDriveTime { StartHour = DateTime.ParseExact("07:00:00", "hh:mm:ss", null), EndHour = DateTime.ParseExact("09:30:00", "hh:mm:ss", null) } } } }; _repositoryMock.Setup(r => r.LoadDrivingRestrictions()).Returns(drivingRestrictions); var service = new DrivingControlService(_repositoryMock.Object); var result = service.CanDrive(plateNumber, mondayDate, restrictedTime); Assert.False(result); }
public ActionResult <string> VerifyDriving(DrivingModel model) { try { var canDrive = _drivingControlService.CanDrive(model.PlateNumber, model.Date, model.Time); return((canDrive) ? $"The plate number '{model.PlateNumber}' CAN be on the road." + $"\n{_drivingControlService.Message}" : $"The plate number '{model.PlateNumber}' CANNOT be on the road." + $"\n{_drivingControlService.Message}"); } catch (Exception ex) { return(ex.Message); } }
public void CanDrive_ShouldThrowAFormatException_WhenDateIsInvalid() { var plateNumber = "XXXX-XXX1"; var invalidDate = "xx/xx/xxxx"; var drivingRestrictions = new List <DrivingRestriction> { new DrivingRestriction { PlateNumber = "1" } }; _repositoryMock.Setup(r => r.LoadDrivingRestrictions()).Returns(drivingRestrictions); var service = new DrivingControlService(_repositoryMock.Object); Assert.Throws <FormatException>(() => service.CanDrive(plateNumber, invalidDate, null)); }
public void CanDrive_ShouldReturnTrue_WhenPlateNumberIsNotInDrivingRestrictions() { var plateNumber = "XXXX-XXX"; var drivingRestrictions = new List <DrivingRestriction> { new DrivingRestriction { PlateNumber = "1", NoDriveDay = new NoDriveDay { DayName = "MONDAY" }, NoDriveTimes = new List <NoDriveTime>() } }; _repositoryMock.Setup(r => r.LoadDrivingRestrictions()).Returns(drivingRestrictions); var service = new DrivingControlService(_repositoryMock.Object); var result = service.CanDrive(plateNumber, null, null); Assert.True(result); }
public void CanDrive_ShouldThrowAFormatException_WhenTimeIsInvalid() { var plateNumber = "XXXX-XXX1"; var date = "16/09/2019"; var invalidTime = "xx:xx"; var drivingRestrictions = new List <DrivingRestriction> { new DrivingRestriction { PlateNumber = "1", NoDriveDay = new NoDriveDay { DayName = "MONDAY" } } }; _repositoryMock.Setup(r => r.LoadDrivingRestrictions()).Returns(drivingRestrictions); var service = new DrivingControlService(_repositoryMock.Object); Assert.Throws <FormatException>(() => service.CanDrive(plateNumber, date, invalidTime)); }