Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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);
            }
        }