public async Task <IActionResult> Create(VehicleCreateInputModel inputModel)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(inputModel));
            }

            if (this.vehiclesService.VihicleExists(inputModel.VIN))
            {
                var errorModel = new ErrorViewModel()
                {
                    Message = "This vehicle already exists in database."
                };
                return(this.View("../Shared/Error", errorModel));
            }

            var currentUser = await this.userManager.GetUserAsync(this.HttpContext.User);

            var newVehicle = Mapper.Map <Vehicle>(inputModel);

            newVehicle.OwnerId = currentUser.ClientId;
            await this.vehiclesService.Create(newVehicle);

            int id = newVehicle.Id;

            return(this.RedirectToAction("Details", new { id }));
        }
Exemple #2
0
        public async Task GetAllAsyncReturnsCorrect()
        {
            var id    = 1;
            var first = new Vehicle
            {
                Id    = id,
                Make  = "Opel",
                Model = "Corsa",
                RegistrationNumber = "CA2254TX",
            };

            var expected = new List <Vehicle>();

            expected.Add(first);

            var add = new VehicleCreateInputModel
            {
                Make  = "Mazda",
                Model = "Z6",
                RegistrationNumber = "CA5554TX",
            };

            var result = await this.VehiclesServiceMock.CreateAsync(add);

            var actual = await this.VehiclesServiceMock.GetAllAsync <VehicleCreateViewModel>().ToListAsync();

            Assert.Equal(expected.Count, actual.Count());
        }
Exemple #3
0
        public async Task GetByAsyncReturnsCorrect()
        {
            var id    = 2;
            var first = new VehicleCreateInputModel
            {
                Make  = "Mazda",
                Model = "Z6",
                RegistrationNumber = "CA5554TX",
            };

            await this.VehiclesServiceMock.CreateAsync(first);

            var second = new VehicleCreateInputModel
            {
                Make  = "Opel",
                Model = "Corsa",
                RegistrationNumber = "CA2222TX",
            };

            var result = await this.VehiclesServiceMock.CreateAsync(second);

            var actual = await this.VehiclesServiceMock.GetByIdAsync <VehicleCreateViewModel>(id);

            Assert.Equal(second.RegistrationNumber, actual.RegistrationNumber);
        }
Exemple #4
0
        public async Task GetVehicleNames()
        {
            var first = new VehicleCreateInputModel
            {
                Make  = "Mazda",
                Model = "Z6",
                RegistrationNumber = "CA5554TX",
            };

            await this.VehiclesServiceMock.CreateAsync(first);

            var second = new VehicleCreateInputModel
            {
                Make  = "Opel",
                Model = "Corsa",
                RegistrationNumber = "CA2222TX",
            };

            var result = await this.VehiclesServiceMock.CreateAsync(second);

            await this.VehiclesServiceMock.DeleteByIdAsync(1);

            var actual = await this.VehiclesServiceMock.GetVehicleNames();

            Assert.Single(actual);
            Assert.Contains(actual, x => x.Text == result.RegistrationNumber);
        }
Exemple #5
0
        public async Task DeleteByIdAsyncReturnsCorrect()
        {
            var id    = 2;
            var first = new VehicleCreateInputModel
            {
                Make  = "Mazda",
                Model = "Z6",
                RegistrationNumber = "CA5554TX",
            };

            await this.VehiclesServiceMock.CreateAsync(first);

            var second = new VehicleCreateInputModel
            {
                Make  = "Opel",
                Model = "Corsa",
                RegistrationNumber = "CA2222TX",
            };

            var result = await this.VehiclesServiceMock.CreateAsync(second);

            var result1 = await this.VehiclesServiceMock.DeleteByIdAsync(id);

            var actual = await this.VehiclesServiceMock.GetAllAsync <VehicleDeleteViewModel>().ToListAsync();

            Assert.DoesNotContain(actual, x => x.Id == id);
        }
Exemple #6
0
        public async Task EditByIdAsyncithWrongIdReturnsError()
        {
            var id    = 3;
            var first = new VehicleCreateInputModel
            {
                Make  = "Mazda",
                Model = "Z6",
                RegistrationNumber = "CA5554TX",
            };

            await this.VehiclesServiceMock.CreateAsync(first);

            var second = new VehicleCreateInputModel
            {
                Make  = "Opel",
                Model = "Corsa",
                RegistrationNumber = "CA2222TX",
            };

            var result = await this.VehiclesServiceMock.CreateAsync(second);

            var editModel = await this.VehiclesServiceMock.GetByIdAsync <VehicleEditViewModel>(id);

            var edit = new VehicleEditInputModel
            {
                Make  = "OpelEdited",
                Model = "Corsa",
                RegistrationNumber = "CA2222TX",
            };

            var exception = await Assert.ThrowsAsync <NullReferenceException>(() => this.VehiclesServiceMock.EditByIdAsync(id, edit));

            Assert.Equal(string.Format(string.Format(VehicleConstants.NullReferenceId, id)), exception.Message);
        }
Exemple #7
0
        public async Task <VehicleCreateViewModel> CreateAsync(VehicleCreateInputModel vehicleFromView)
        {
            var vehicleToDb = vehicleFromView.To <Vehicle>();

            await this.vehicleRepository.AddAsync(vehicleToDb);

            await this.vehicleRepository.SaveChangesAsync();

            return(vehicleToDb.To <VehicleCreateViewModel>());
        }
Exemple #8
0
        public async Task <IActionResult> Create(VehicleCreateInputModel vehicleCreate)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(AutoMapper.Mapper.Map <VehicleCreateViewModel>(vehicleCreate)));
            }

            var checkForRegistrationNumber = await this.vehiclesService
                                             .GetAllAsync <VehicleCreateViewModel>()
                                             .FirstOrDefaultAsync(x => x.RegistrationNumber == vehicleCreate.RegistrationNumber);

            // If customer with phone number exists return existing view model
            if (checkForRegistrationNumber != null)
            {
                this.ModelState.AddModelError(nameof(vehicleCreate.RegistrationNumber), string.Format(VehicleConstants.ArgumentExceptionRegistrationNumber, vehicleCreate.RegistrationNumber));
                return(this.View(AutoMapper.Mapper.Map <VehicleCreateViewModel>(vehicleCreate)));
            }

            var result = await this.vehiclesService.CreateAsync(vehicleCreate);

            return(this.RedirectToAction(nameof(this.Index)));
        }
Exemple #9
0
        public async Task EditByIdAsyncReturnsCorrect()
        {
            var id    = 2;
            var first = new VehicleCreateInputModel
            {
                Make  = "Mazda",
                Model = "Z6",
                RegistrationNumber = "CA5554TX",
            };

            await this.VehiclesServiceMock.CreateAsync(first);

            var second = new VehicleCreateInputModel
            {
                Make  = "Opel",
                Model = "Corsa",
                RegistrationNumber = "CA2222TX",
            };

            var result = await this.VehiclesServiceMock.CreateAsync(second);

            var editModel = await this.VehiclesServiceMock.GetByIdAsync <VehicleEditViewModel>(id);

            var edit = new VehicleEditInputModel
            {
                Make  = "OpelEdited",
                Model = "Corsa",
                RegistrationNumber = "CA2222TX",
            };

            var actual = await this.VehiclesServiceMock.EditByIdAsync(editModel.Id, edit);

            var vehicles = await this.DbContext.Vehicles.ToListAsync();

            Assert.Equal(edit.Make, actual.Make);
            Assert.Contains(vehicles, x => x.Make == edit.Make);
        }