public async void VehicleDriverUpdate() { // Arrange this.FleetDbContext.Vehicles.Add(new VehicleEntity() { VehicleId = 1, VehicleDriverId = 1, VehicleDriverAssignmentId = 1 }); this.FleetDbContext.VehicleDriverAssignments.Add( new VehicleDriverAssignmentEntity() { VehicleDriverAssignmentId = 1, VehicleDriverId = 2, VehicleId = 1 }); await this.SaveChangesAsync(this.FleetDbContext); VehicleDriverAssignmentModel model = new VehicleDriverAssignmentModel() { VehicleDriverAssignmentId = 1, VehicleDriverId = 2, VehicleId = 1, AssignmentStartDate = new DateTime(2016, 1, 1), AssignmentEndDate = new DateTime(2016, 1, 31) }; // Act AjaxModel <NTModel> ajaxModel = await this.Controller.VehicleDriverUpdate(model); // Assert VehicleEntity vehicle = await this.FleetDbContext.Vehicles.FirstAsync(); VehicleDriverAssignmentEntity driverAssignment = await this.FleetDbContext.VehicleDriverAssignments.FirstOrDefaultAsync(); Assert.Null(vehicle.VehicleDriverId); Assert.Null(vehicle.VehicleDriverAssignmentId); Assert.Equal(driverAssignment.AssignmentEndDate, new DateTime(2016, 1, 31)); Assert.Equal(ajaxModel.Message, FleetMessages.VehicleDriverSaveSuccess); }
public async Task VehicleDriverUpdate(VehicleDriverAssignmentModel model) { VehicleDriverAssignmentEntity entity = await UpdateEntity <VehicleDriverAssignmentEntity, VehicleDriverAssignmentModel>(model, false); //checking if the current driver is assigned to the vehicle VehicleEntity vehicle = await(from v in this.DbContext.Vehicles where v.VehicleId == model.VehicleId select v).SingleAsync(); if (vehicle.VehicleDriverAssignmentId == entity.VehicleDriverAssignmentId) { vehicle.VehicleDriverId = null; vehicle.VehicleDriverAssignmentId = null; this.DbContext.Vehicles.Update(vehicle); } await this.DbContext.SaveChangesAsync(); }
public async Task VehicleDriverAdd(VehicleDriverAssignmentModel model) { VehicleDriverAssignmentEntity entity = await AddEntity <VehicleDriverAssignmentEntity, VehicleDriverAssignmentModel>(model, false); if (model.AssignmentEndDate == null) { //validate whether assignment date is allowed and then set it VehicleEntity vehicle = await(from v in this.DbContext.Vehicles where v.VehicleId == model.VehicleId select v).SingleAsync(); if (vehicle.VehicleDriverId != null) { throw new NTException(Messages.Fleet.DriveAssessmentError); } else { vehicle.VehicleDriverId = model.VehicleDriverId; vehicle.VehicleDriverAssignment = entity; this.DbContext.Vehicles.Update(vehicle); } } await this.DbContext.SaveChangesAsync(); }
public async void VehicleDriverAdd(DateTime startDate, DateTime endDate) { // Arrange this.FleetDbContext.Vehicles.Add(new VehicleEntity() { VehicleId = 1 }); await this.SaveChangesAsync(this.FleetDbContext); VehicleDriverAssignmentModel model = new VehicleDriverAssignmentModel() { VehicleDriverAssignmentId = 0, VehicleDriverId = 2, VehicleId = 1, AssignmentStartDate = startDate, AssignmentEndDate = endDate }; // Act AjaxModel <NTModel> ajaxModel = await this.Controller.VehicleDriverAdd(model); // Assert VehicleEntity vehicle = await this.FleetDbContext.Vehicles.FirstAsync(); VehicleDriverAssignmentEntity driverAssignment = await this.FleetDbContext.VehicleDriverAssignments.FirstOrDefaultAsync(); if (endDate == null) { Assert.Equal(vehicle.VehicleDriverId, 2); Assert.Equal(vehicle.VehicleDriverAssignment.VehicleDriverAssignmentId, driverAssignment.VehicleDriverAssignmentId); Assert.Equal(ajaxModel.Message, FleetMessages.VehicleDriverSaveSuccess); } else if (endDate < startDate) { Assert.Equal(ajaxModel.Message, FleetMessages.DriveAssessmentDateError); } else { Assert.Equal(driverAssignment.VehicleDriverId, 2); Assert.Equal(ajaxModel.Message, FleetMessages.VehicleDriverSaveSuccess); } }