public void ReturnDefaultView_WithModelErrorForImage_WhenUploadedFileIsNotImage() { //Arrange var mockedMappingService = new Mock <IMappingService>(); var mockedRegionsService = new Mock <IRegionsService>(); var mockedBarsService = new Mock <IBarsService>(); var mockedCacheProvider = new Mock <ICacheProvider>(); var mockedServerProvider = new Mock <IServerProvider>(); var mockedPathProvider = new Mock <IPathProvider>(); mockedPathProvider.Setup(x => x.GetExtension(It.IsAny <string>())).Returns(".exe"); var controller = new AddBarController(mockedMappingService.Object, mockedRegionsService.Object, mockedBarsService.Object, mockedCacheProvider.Object, mockedServerProvider.Object, mockedPathProvider.Object); var mockedFile = new Mock <HttpPostedFileBase>(); mockedFile.Setup(x => x.ContentType).Returns(".exe"); var barModel = new AddBarViewModel() { Image = mockedFile.Object }; //Act & Assert controller.WithCallTo(x => x.Index(barModel)) .ShouldRenderDefaultView() .WithModel <AddBarViewModel>() .AndModelError("Image") .ThatEquals("The uploaded file should be an image"); }
public void RedirectToHome_WhenModelStateIsValid_AndUploadedFileIsNull() { //Arrange var bar = new ShishaBar() { ImagePathBig = "Some/Path" }; var mockedMappingService = new Mock <IMappingService>(); mockedMappingService.Setup(x => x.Map <AddBarViewModel, ShishaBar>(It.IsAny <AddBarViewModel>())).Returns(bar); var mockedRegionsService = new Mock <IRegionsService>(); var mockedBarsService = new Mock <IBarsService>(); mockedBarsService.Setup(x => x.AddBar(It.IsAny <ShishaBar>())).Verifiable(); var mockedCacheProvider = new Mock <ICacheProvider>(); var mockedServerProvider = new Mock <IServerProvider>(); mockedServerProvider.Setup(x => x.MapPath(It.IsAny <string>())).Returns("path"); var mockedPathProvider = new Mock <IPathProvider>(); var controller = new AddBarController(mockedMappingService.Object, mockedRegionsService.Object, mockedBarsService.Object, mockedCacheProvider.Object, mockedServerProvider.Object, mockedPathProvider.Object); var barModel = new AddBarViewModel() { }; //Act & Assert controller.WithCallTo(x => x.Index(barModel)) .ShouldRedirectTo("/allbars"); }
public ActionResult Index(AddBarViewModel barModel) { if (!ModelState.IsValid) { var regions = this.GetRegions(); ViewBag.Regions = new SelectList(regions, "Id", "Name"); return(View(barModel)); } if (!IsImageFile(barModel.Image)) { ModelState.AddModelError("Image", "The uploaded file should be an image"); var regions = this.GetRegions(); ViewBag.Regions = new SelectList(regions, "Id", "Name"); return(View(barModel)); } var bar = mappingService.Map <AddBarViewModel, ShishaBar>(barModel); if (barModel.Image != null) { var path = this.serverProvider.MapPath(bar.ImagePathBig); barModel.Image.SaveAs(path); } this.barsService.AddBar(bar); return(this.Redirect("/allbars")); }
public void ReturnDefaultView_WithModelError_WhenModelStateIsInvalid() { //Arrange var mockedMappingService = new Mock <IMappingService>(); var mockedRegionsService = new Mock <IRegionsService>(); var mockedBarsService = new Mock <IBarsService>(); var mockedCacheProvider = new Mock <ICacheProvider>(); var mockedServerProvider = new Mock <IServerProvider>(); var mockedPathProvider = new Mock <IPathProvider>(); var controller = new AddBarController(mockedMappingService.Object, mockedRegionsService.Object, mockedBarsService.Object, mockedCacheProvider.Object, mockedServerProvider.Object, mockedPathProvider.Object); var barModel = new AddBarViewModel(); controller.ModelState.AddModelError("Error", "Error message"); //Act & Assert controller.WithCallTo(x => x.Index(barModel)) .ShouldRenderDefaultView() .WithModel <AddBarViewModel>() .AndModelError("Error") .ThatEquals("Error message"); }
public async Task <IActionResult> Add(AddBarViewModel bar) { if (ModelState.IsValid) { try { var fileName = Path.Combine(hostingEnvironment.WebRootPath + "\\barImages", Path.GetFileName(bar.Image.FileName)); bar.Image.CopyTo(new FileStream(fileName, FileMode.Create)); var imgPath = "/barImages/" + Path.GetFileName(bar.Image.FileName); await barServices.AddAsync(bar.Name, imgPath, bar.PhoneNumber, bar.Address.MapToDTO()); return(RedirectToAction("Index")); } catch (ArgumentException ex) { TempData["Status"] = ex.Message; return(View(bar)); } } ModelState.AddModelError("", "Something went wrong..."); return(View(bar)); }
public async Task <IActionResult> Add() { var barVM = new AddBarViewModel(); var cities = await cityServices.GetAllDTOAsync(); barVM.AllCities = cities.Select(c => new SelectListItem(c.Name, c.Id.ToString())).ToList(); return(View(barVM)); }
public static BarToEditDTO MapToDTO(this AddBarViewModel bar) { var dto = new BarToEditDTO { Name = bar.Name, ImagePath = bar.ImagePath, Address = bar.Address.MapToDTO() }; return(dto); }
public static AddBarViewModel MapToViewModel(this BarToEditDTO bar) { var dto = new AddBarViewModel { Name = bar.Name, ImagePath = bar.ImagePath, PhoneNumber = bar.PhoneNumber, Address = bar.Address.MapToViewModel() }; return(dto); }
//[AutoValidateAntiforgeryToken] public async Task <IActionResult> AddBar(AddBarViewModel barModel, IFormFile file) { if (file != null && this.ModelState.IsValid) { byte[] barPhoto; using (var stream = new MemoryStream()) { await file.CopyToAsync(stream); barPhoto = stream.ToArray(); } await barService.AddBarAsync(barModel.Name, barModel.Address, barModel.Description, barModel.Country, barModel.City, barPhoto); } else { return(View("AddBar", barModel)); } return(RedirectToAction("BarSearch", "Bar")); }
public async Task <IActionResult> Edit(int id, AddBarViewModel vm) { try { var fileName = Path.Combine(hostingEnvironment.WebRootPath, Path.GetFileName(vm.Image.FileName)); vm.Image.CopyTo(new FileStream(fileName, FileMode.Create)); var imgPath = "/barImages/" + Path.GetFileName(vm.Image.FileName); var barToEdit = vm.MapToDTO(); barToEdit.ImagePath = imgPath; barToEdit.Id = id; await barServices.EditAsync(barToEdit); return(RedirectToAction("Details", new { id = id })); } catch (InvalidOperationException) { return(BadRequest()); } }
public IActionResult AddBar() { var vm = new AddBarViewModel(); return(View("AddBar", vm)); }