public ActionResult Add(SettingsViewModel addForm) { //Grab users email to add to correct collection document string usersEmail = addForm.Email; //Get the type of car selected by the CarID string CarSelected = GetSelectedCarType(addForm.CarType); //Create new UsersCar object to add into database -> Gets information from the Form UsersCars newCar = new UsersCars(); newCar.CarID = Guid.NewGuid().ToString(); newCar.Type = CarSelected; newCar.mileage = addForm.Mileage; newCar.monthsOwned = addForm.MonthsOwned; newCar.totalSpent = addForm.TotalSpent; newCar.InspectionDue = addForm.InspectionDate; newCar.CarNickname = addForm.CarNickname; //Create a statement that initializes a personal maintenance object newCar.PersonalMaintenance = dal.InitializePersonalMaintenance(newCar.mileage, newCar.totalSpent); //If dal.AddCar is succesful -> redirects to users setting page if (dal.AddCar(usersEmail, newCar)) { Session["email"] = usersEmail; var email = (string)Session["email"]; return(RedirectToAction("Settings", "Manage", new { email })); } //Not successful throw error else { throw new Exception("Error"); } }
public void RemoveCar_WhenValidParametersArePassed() { // Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var carServiceMock = new Mock <ICarService>(); string username = "******"; int carId = 1; var user = new User() { Username = username, }; var users = new List <User>() { user }; var car = new Car() { Id = 1 }; var cars = new List <Car>() { car }; var userCar = new UsersCars() { CarId = car.Id, User = user }; var usersCars = new List <UsersCars>() { userCar }; carServiceMock.Setup(c => c.GetCar(It.IsAny <int>())).Returns(car); unitOfWorkMock.Setup(u => u.GetRepository <User>().All()).Returns(users.AsQueryable()); unitOfWorkMock.Setup(u => u.GetRepository <Car>().All()).Returns(cars.AsQueryable()); unitOfWorkMock.Setup(u => u.GetRepository <UsersCars>().All()).Returns(usersCars.AsQueryable()); var sut = new UserService(unitOfWorkMock.Object, carServiceMock.Object); // Act sut.RemoveCarFromFavorites(carId, username); // Assert unitOfWorkMock.Verify(u => u.GetRepository <UsersCars>().Delete(It.IsAny <UsersCars>()), Times.Once); unitOfWorkMock.Verify(c => c.SaveChanges(), Times.Once); }
public void DeleteCarExtra_WhenValidParametersArePassed() { // Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); int carId = 1; var car = new Car() { Id = carId }; var cars = new List <Car>() { car }; var userCar = new UsersCars() { CarId = car.Id, UserId = 1 }; var usersCars = new List <UsersCars>() { userCar }; var carExtra = new CarsExtras() { CarId = car.Id, ExtraId = 1 }; var carsExtras = new List <CarsExtras>() { carExtra }; unitOfWorkMock.Setup(u => u.GetRepository <Car>().All()).Returns(cars.AsQueryable()); unitOfWorkMock.Setup(u => u.GetRepository <UsersCars>().All()).Returns(usersCars.AsQueryable()); unitOfWorkMock.Setup(u => u.GetRepository <CarsExtras>().All()).Returns(carsExtras.AsQueryable()); var sut = new CarService(unitOfWorkMock.Object); // Act sut.RemoveCar(carId); // Assert unitOfWorkMock.Verify(u => u.GetRepository <CarsExtras>().Delete(It.IsAny <CarsExtras>()), Times.Once); unitOfWorkMock.Verify(c => c.SaveChanges(), Times.Once); }
public void ThrowServiceException_WhenCarAlreadyInFavorites() { // Arrange var unitOfWorkMock = new Mock <IUnitOfWork>(); var carServiceMock = new Mock <ICarService>(); string username = "******"; int carId = 1; var user = new User() { UserName = username }; var users = new List <User>() { user }; var car = new Car() { Id = 1 }; var cars = new List <Car>() { car }; var userCar = new UsersCars() { CarId = car.Id, UserId = user.Id }; var usersCars = new List <UsersCars>() { userCar }; carServiceMock.Setup(c => c.GetCar(It.IsAny <int>())).Returns(car); unitOfWorkMock.Setup(u => u.GetRepository <User>().All()).Returns(users.AsQueryable()); unitOfWorkMock.Setup(u => u.GetRepository <Car>().All()).Returns(cars.AsQueryable()); unitOfWorkMock.Setup(u => u.GetRepository <UsersCars>().All()).Returns(usersCars.AsQueryable()); var sut = new UserService(unitOfWorkMock.Object, carServiceMock.Object); // Act && Assert Assert.ThrowsException <ServiceException>(() => sut.AddCarToFavorites(carId, username)); }
public async Task <Car> AddCarToFavorites(int carId, User user) { Car car = await this.carService.GetCarAsync(carId).ConfigureAwait(false); var isCarFavorite = IsCarFavorite(carId, user); if (!isCarFavorite) { var newUserCar = new UsersCars() { CarId = carId, User = user }; this.dealershipContext.UsersCars.Add(newUserCar); this.dealershipContext.SaveChanges(); } return(car); }
public Car AddCarToFavorites(int carId, User user) { Car car = this.carService.GetCar(carId); var isCarFavorite = IsCarFavorite(carId, user); if (isCarFavorite) { throw new ServiceException("This car is already added to favorites."); } var newUserCar = new UsersCars() { CarId = carId, User = user }; this.dealershipContext.UsersCars.Add(newUserCar); this.dealershipContext.SaveChanges(); return(car); }