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");
        }
Esempio n. 3
0
        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);
        }
Esempio n. 8
0
        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));
        }