public ActionResult EditOffer(EditableCarOfferViewModel offer) { if (this.ModelState.IsValid) { var carOffer = new CarOffer() { Id = offer.Id, Author = offer.Author, Brand = offer.Brand, Model = offer.Model, Description = offer.Description, Image = offer.Image, Color = offer.Color, Engine = offer.Engine, CreatedOn = DateTime.Now, Transmission = offer.Transmission, CarCategory = offer.CarCategory, Mileage = offer.Mileage, HorsePower = offer.HorsePower, Location = offer.Location, Price = offer.Price, SellersCurrentPhone = offer.SellersCurrentPhone, YearManufacured = offer.YearManufacured }; this.carOffersService.Update(carOffer); return(RedirectToAction("AllOffers", "Offers")); } return(View()); }
public void Upload_WhenImageNullIsPassed_ShouldReturnUploadView() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(UploadController).Assembly); var carOffer = new CarOffer(); var carOfferViewModel = new CarOfferViewModel(); var fileToPass = new List <HttpPostedFileBase>(); fileToPass.Add(null); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var imageServiceMock = new Mock <IImageService>(); var userServiceMock = new Mock <IUserService>(); UploadController uploadController = new UploadController(carOffersServiceMock.Object, imageServiceMock.Object, userServiceMock.Object); // Act & Assert uploadController.WithCallTo(x => x.Upload(carOfferViewModel, fileToPass)).ShouldRenderView("Upload"); }
private void SeedSampleData(Autos4SaleDbContext dbContext) { if (!dbContext.CarOffers.Any()) { for (int i = 0; i < 5; i++) { var carOffer = new CarOffer() { // TODO: Image property must be set up Brand = $"RandomBrand-{i}", Model = $"Proto-Type-{i}", Author = dbContext.Users.First(x => x.Email == AdministratorUserName), CreatedOn = DateTime.Now, Color = (ColorType)i, Engine = (EngineType)i, Transmission = TransmissionType.Manual, CarCategory = (CarCategoryType)i, Mileage = 20000 + i, HorsePower = 111 + i, SellersCurrentPhone = "+0899101010", Location = "Sofia, Mladost 1A", Price = 1000 + i, Description = "Perfektna, karana ot 93 godi6na baba, samo do magazina!" }; dbContext.CarOffers.Add(carOffer); } } }
public void GetAll_WhenValidParametersArePased_ShouldReturnAllOffers() { // Arrange var carOffer = new CarOffer(); var carOffer2 = new CarOffer(); var efRepoMock = new Mock <IEfRepository <CarOffer> >(); efRepoMock.Setup(x => x.GetAll) .Returns(new List <CarOffer> { carOffer, carOffer2 }.AsQueryable()); var efUnitOfWorkMock = new Mock <IEfUnitOfWork>(); var service = new CarOffersService(efRepoMock.Object, efUnitOfWorkMock.Object); service.Add(carOffer); service.Add(carOffer2); // Act var result = service.GetAll(); // Assert Assert.AreEqual(2, result.Count()); }
public void Upload_WhenValidParameterAreProvided_ShouldReturnTheDefaoultContreller() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(UploadController).Assembly); var carOffer = new CarOffer(); var carOfferViewModel = new CarOfferViewModel(); var fileToPass = new List <HttpPostedFileBase>(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var imageServiceMock = new Mock <IImageService>(); var userServiceMock = new Mock <IUserService>(); UploadController uploadController = new UploadController(carOffersServiceMock.Object, imageServiceMock.Object, userServiceMock.Object); // Act & Assert uploadController.WithCallTo(x => x.Upload(carOfferViewModel, fileToPass)).ShouldRedirectToRoute(string.Empty); }
public void AllCars_WhenValidParametersArePased_ShouldReturnCorerectViewResultName() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var carOffer = new CarOffer(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var userServiceMock = new Mock <IUserService>(); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); // Act ViewResult result = offersController.AllCars() as ViewResult; // Assert Assert.AreEqual(string.Empty, result.ViewName); }
public void DeleteOffer_WhenInValidParametersArePased_ShouldReturnNull() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var carOffer = new CarOffer(); var guid = Guid.NewGuid(); var userServiceMock = new Mock <IUserService>(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); carOffersServiceMock.Setup(x => x.Delete(carOffer)); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); // Act ViewResult result = offersController.DeleteOffer(guid) as ViewResult; // Assert Assert.IsNull(result); }
public void DeleteOffer_WhenValidParametersArePased_ShouldCallDeleteMethod() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var carOffer = new CarOffer(); var guid = Guid.NewGuid(); var userServiceMock = new Mock <IUserService>(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); carOffersServiceMock.Setup(x => x.Delete(carOffer)); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); // Act carOffersServiceMock.Object.Delete(carOffer); // Assert carOffersServiceMock.Verify(x => x.Delete(carOffer), Times.Once); }
public void DeleteCarOffer(CarOffer carOffer) { var offerImages = dbContext.OfferImages.Where(x => x.CarOfferId == carOffer.Id).ToList(); dbContext.OfferImages.RemoveRange(offerImages); dbContext.CarOffers.Remove(carOffer); dbContext.SaveChanges(); }
public void CarOfferProp_WhenValidParametersArePasedToId_ShouldSetCorerectly() { // Arrange var image = new Image(); var offer = new CarOffer(); // Act image.CarOffer = offer; // Assert Assert.AreEqual(offer, image.CarOffer); }
public void CarOffersProp_WhenValidParametersArePasedToId_ShouldSetCorerectly() { // Arrange var user = new User(); var offer = new CarOffer(); // Act user.CarOffers = new List <CarOffer>() { offer }; // Assert Assert.AreEqual(offer, user.CarOffers.FirstOrDefault()); }
public ActionResult Upload(CarOfferViewModel offer, IEnumerable <HttpPostedFileBase> images) { if (this.ModelState.IsValid) { if (!images.Contains(null)) { string[] allowedFileExtensions = new string[] { ".jpg", ".jpeg", ".png", ".bmp" }; foreach (var image in images) { if (!allowedFileExtensions.Contains(image.FileName.Substring(image.FileName.LastIndexOf('.')))) { return(View()); // make e default page if something is wrong } } var imgs = this.imageService.SaveImages(images); //var mappedOffer= Mapper.Map<CarOfferViewModel, CarOffer>(offer); var carOffer = new CarOffer() { Author = userService.ReturnCurrentUser(), Brand = offer.Brand, Model = offer.Model, Description = offer.Description, Image = imgs, Color = offer.Color, Engine = offer.Engine, CreatedOn = DateTime.Now, Transmission = offer.Transmission, CarCategory = offer.CarCategory, Mileage = offer.Mileage, HorsePower = offer.HorsePower, Location = offer.Location, Price = offer.Price, SellersCurrentPhone = offer.SellersCurrentPhone, YearManufacured = offer.YearManufacured }; this.carOffersService.Add(carOffer); return(RedirectToAction("AllCars", "Offers")); } } return(View()); // make e default page if something is wrong }
public void Update_WhenValidParametersArePased_ShouldCallEfRepositoryMethodUpdate() { // Arrange var carOffer = new CarOffer(); var efRepoMock = new Mock <IEfRepository <CarOffer> >(); efRepoMock.Setup(x => x.Update(carOffer)); var efUnitOfWorkMock = new Mock <IEfUnitOfWork>(); var serviceMock = new CarOffersService(efRepoMock.Object, efUnitOfWorkMock.Object); // Act serviceMock.Update(carOffer); // Assert efRepoMock.Verify(x => x.Update(carOffer), Times.Once); }
public void Add_WhenValidParametersArePased_ShouldCallAddMethod() { // Arrange var efRepoMock = new Mock <IEfRepository <CarOffer> >(); var efUnitOfWorkMock = new Mock <IEfUnitOfWork>(); var carOffer = new CarOffer(); var carOffer2 = new CarOffer(); var serviceMock = new Mock <ICarOffersService>(); serviceMock.Setup(x => x.Add(carOffer)); // Act serviceMock.Object.Add(carOffer); // Assert serviceMock.Verify(x => x.Add(carOffer), Times.Once); }
public void Add_WhenValidParametersArePased_ShouldCallUnitOfWorkMethodCommit() { // Arrange var carOffer = new CarOffer(); var efRepoMock = new Mock <IEfRepository <CarOffer> >(); var efUnitOfWorkMock = new Mock <IEfUnitOfWork>(); efUnitOfWorkMock.Setup(x => x.Commit()); var service = new CarOffersService(efRepoMock.Object, efUnitOfWorkMock.Object); // Act service.Add(carOffer); service.Add(carOffer); // Assert efUnitOfWorkMock.Verify(x => x.Commit(), Times.Exactly(2)); }
public void EditOffer_WhenInValidIdIsPased_ShouldRedirectToHomeViewRoute() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var carOffer = new CarOffer(); var userServiceMock = new Mock <IUserService>(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.Update(carOffer)).Verifiable(); carOffersServiceMock.Object.Update(carOffer); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); var editableCarOfferViewModel = new EditableCarOfferViewModel(); // Act & Assert offersController.WithCallTo(x => x.EditOffer(editableCarOfferViewModel)).ShouldRedirectToRoute(string.Empty); }
public void YourOffers_WhenInValidGetAllParamIsPased_ShouldReturnNull() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var userServiceMock = new Mock <IUserService>(); var carOffer = new CarOffer(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); // Act & Assert Assert.Throws <NullReferenceException>(() => offersController.YourOffers()); }
public void Details_WhenInValidIdIsPased_ShouldRedirectToHomeControllerRoute() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var carOffer = new CarOffer(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var guid = Guid.NewGuid(); var userServiceMock = new Mock <IUserService>(); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); // Act & Assert offersController.WithCallTo(x => x.Details(null)).ShouldRedirectToRoute(string.Empty); }
public void About_WhenValidParametersArePased_ShouldReturnCorerectViewAbout() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(HomeController).Assembly); var carOffer = new CarOffer(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var userServiceMock = new Mock <IUserService>(); HomeController homeController = new HomeController(carOffersServiceMock.Object); // Act & Assert homeController.WithCallTo(x => x.About()).ShouldRenderView("About"); }
public void GetAllCars_WhenValidParametersArePased_ShouldReturnCorerectPartialViewResult() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var carOffer = new CarOffer(); var userServiceMock = new Mock <IUserService>(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); // Act & Assert offersController.WithCallTo(x => x.GetAllCars()).ShouldRenderPartialView("_GetAllCarsPartial"); }
public void EditOffer_WhenValidParametersArePased_ShouldCallUpdateMethod() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(OffersController).Assembly); var carOffer = new CarOffer(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.Update(carOffer)).Verifiable(); carOffersServiceMock.Object.Update(carOffer); var userServiceMock = new Mock <IUserService>(); OffersController offersController = new OffersController(carOffersServiceMock.Object, userServiceMock.Object); var editableCarOfferViewModel = new EditableCarOfferViewModel(); // Act ViewResult result = offersController.EditOffer(editableCarOfferViewModel) as ViewResult; // Assert carOffersServiceMock.Verify(x => x.Update(carOffer), Times.Once); }
public void Upload_WhenInValidParameterImagesIsProvided_ShouldReturnArgumentNullException() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(UploadController).Assembly); var carOffer = new CarOffer(); var carOfferViewModel = new CarOfferViewModel(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var imageServiceMock = new Mock <IImageService>(); var userServiceMock = new Mock <IUserService>(); UploadController uploadController = new UploadController(carOffersServiceMock.Object, imageServiceMock.Object, userServiceMock.Object); // Act & Assert Assert.Throws <ArgumentNullException>(() => uploadController.Upload(carOfferViewModel, null)); }
public void AddCar(AddCarViewModel addCarViewModel, string userId) { var offer = new CarOffer() { Title = addCarViewModel.Title, Make = addCarViewModel.Make, Model = addCarViewModel.Model, Year = addCarViewModel.Year, Price = addCarViewModel.Price, Condition = addCarViewModel.Condition, Color = addCarViewModel.Color, SteeringWheelSide = addCarViewModel.SteeringWheelSide, FuelType = addCarViewModel.FuelType, HorsePower = addCarViewModel.HorsePower, EngineSize = addCarViewModel.EngineSize, Gearbox = addCarViewModel.Gearbox, Doors = addCarViewModel.Doors, Kilometers = addCarViewModel.Kilometers, Description = addCarViewModel.Description, ContactNumber = addCarViewModel.ContactNumber, CreatedOn = DateTime.UtcNow, }; using (var target = new MemoryStream()) { if (addCarViewModel.MainImageFile != null) { addCarViewModel.MainImageFile.CopyTo(target); offer.OfferImage = target.ToArray(); } } var user = dbContext.AspNetUsers.FirstOrDefault(x => x.Id == userId); offer.User = user; offer.UserId = userId; dbContext.CarOffers.Add(offer); dbContext.SaveChanges(); var offerType = "CarOffer"; if (addCarViewModel.SecondImageFile != null) { using (var target = new MemoryStream()) { addCarViewModel.SecondImageFile.CopyTo(target); var offerImage = GetOfferImage(target, offer.Id, offerType); dbContext.OfferImages.Add(offerImage); } } if (addCarViewModel.ThirdImageFile != null) { using (var target = new MemoryStream()) { addCarViewModel.ThirdImageFile.CopyTo(target); var offerImage = GetOfferImage(target, offer.Id, offerType); dbContext.OfferImages.Add(offerImage); } } if (addCarViewModel.FourthImageFile != null) { using (var target = new MemoryStream()) { addCarViewModel.FourthImageFile.CopyTo(target); var offerImage = GetOfferImage(target, offer.Id, offerType); dbContext.OfferImages.Add(offerImage); } } if (addCarViewModel.FifthImageFile != null) { using (var target = new MemoryStream()) { addCarViewModel.FifthImageFile.CopyTo(target); var offerImage = GetOfferImage(target, offer.Id, offerType); dbContext.OfferImages.Add(offerImage); } } if (addCarViewModel.SixthImageFile != null) { using (var target = new MemoryStream()) { addCarViewModel.SixthImageFile.CopyTo(target); var offerImage = GetOfferImage(target, offer.Id, offerType); dbContext.OfferImages.Add(offerImage); } } dbContext.SaveChanges(); }
public void Add(CarOffer carOffer) { this.carOffersRepo.Add(carOffer); this.dbContext.Commit(); }
public void Update(CarOffer carOffer) { this.carOffersRepo.Update(carOffer); this.dbContext.Commit(); }
public void Delete(CarOffer carOffer) { this.carOffersRepo.Delete(carOffer); this.dbContext.Commit(); }
public async Task <object> Save(CarOfferViewModel model, string token) { var offerID = Guid.NewGuid(); var allTitles = await _context.CarOffers.Select(x => x.Title).ToListAsync(); string title; string titleTmp = new string(model.ShortDescription.Select(x => char.IsLetterOrDigit(x) ? x : '-').ToArray()).ToLower(); string check; do { title = titleTmp + ObjectId.GenerateNewId().ToString().Substring(0, 8); check = allTitles.FirstOrDefault(x => x.Contains(title)); } while (check != null); List <File> files = new List <File>(); foreach (var item in model.FileViewModels) { if (item.Type.Contains("image") && item.Base64.Length > 65) { string hash = (item.Base64.Replace("data:" + item.Type + ";base64,", "").Substring(0, 60) + ObjectId.GenerateNewId().ToString().Substring(0, 8)).Replace("/", "").Replace("-", "") + "." + item.Type.Replace("image/", ""); var byteBuffer = Convert.FromBase64String(item.Base64.Replace("data:" + item.Type + ";base64,", "")); var webRoot = _env.WebRootPath; var filePath = System.IO.Path.Combine(webRoot, "images"); filePath = System.IO.Path.Combine(filePath, hash); System.IO.File.WriteAllBytes(filePath, byteBuffer); files.Add(new File() { Id = Guid.NewGuid(), Name = item.Name, Hash = hash, Path = "images\\", Type = item.Type.Split('/').FirstOrDefault() }); } } List <CarOfferEquipment> equipments = new List <CarOfferEquipment>(); var equipmentDB = await _context.Equipments.ToListAsync(); foreach (var item in model.Equipment) { var eqId = equipmentDB.Where(x => x.IdString == item).Select(x => x.Id).FirstOrDefault(); if (eqId != null) { equipments.Add(new CarOfferEquipment() { CarOfferId = offerID, EquipmentId = eqId }); } } var userNameToken = JwtDecode.User(token); var user = await _context.Users.FirstOrDefaultAsync(x => x.NormalizedUserName == userNameToken.ToUpper()); CarOffer carOffer = new CarOffer() { Id = Guid.NewGuid(), CarModel = await _context.CarModels.Where(x => x.ModelName.ToUpper() == model.CarModel.ToUpper()).FirstOrDefaultAsync(), CarProducent = await _context.CarProducents.Where(x => x.ProducentName.ToUpper() == model.CarProducent.ToUpper()).FirstOrDefaultAsync(), Fuel = await _context.FuelTypes.Where(x => x.FuelName.ToUpper() == model.Fuel.ToUpper()).FirstOrDefaultAsync(), Description = model.Description, PhoneNumber = model.PhoneNumber, ShortDescription = model.ShortDescription, Equipments = equipments, Title = title, Year = model.Year, Price = model.Price, VinNumber = model.VinNumber, Files = files, Mileage = model.Mileage, AddDate = DateTime.Now, Condition = model.Condition, Country = model.Country, Door = model.Door, Seat = model.Seat, Color = model.Color, HoursePower = model.HoursePower, User = user }; await _context.CarOffers.AddAsync(carOffer); await _context.SaveChangesAsync(); return(new { Succeeded = true }); }