public void AddPicShouldAddAPicture() { var doggo = new Dog { Name = "Genadi", OwnerId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id }; this.context.Dogs.Add(doggo); this.context.SaveChanges(); using (var stream = File.OpenRead(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpg")) { var pic = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpg")) { Headers = new HeaderDictionary(), ContentType = "image/jpg" }; var model = new AddPicModel { Id = doggo.Id, Pic = pic }; var result = this.picsController.Add(model).Result as RedirectToActionResult; Assert.AreEqual("Dog", result.ActionName); Assert.AreEqual(1, doggo.Images.Count); } }
public void UploadingAPicShouldNotWorkWithOtherThanDotJpg() { var doggo = new Dog { Name = "Visilka", OwnerId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id }; this.context.Dogs.Add(doggo); this.context.SaveChanges(); using (var stream = File.OpenRead(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpeg")) { var pic = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpeg")) { Headers = new HeaderDictionary(), ContentType = "image/jpeg" }; var model = new AddPicModel { Id = doggo.Id, Pic = pic }; this.picsController.Add(model); Assert.AreEqual(0, doggo.Images.Count); } }
public IActionResult Add(Guid id) { var dog = this.context.Dogs.Single(d => d.Id == id); var model = new AddPicModel { Id = id }; if (dog.OwnerId != this.userManager.GetUserId(User)) { model = null; return(RedirectToAction("Index", "Home")); } return(View(model)); }
public void ShowPicShouldReturnCorrectImage() { var doggo = new Dog { Name = "Genadi", OwnerId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id }; this.context.Dogs.Add(doggo); this.context.SaveChanges(); using (var stream = File.OpenRead(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpg")) { var pic = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpg")) { Headers = new HeaderDictionary(), ContentType = "image/jpg" }; var model = new AddPicModel { Id = doggo.Id, Pic = pic }; var result = this.picsController.Add(model).Result as RedirectToActionResult; } Assert.AreEqual(1, doggo.Images.Count); var picture = doggo.Images.First(); var showResult = this.picsController.Show(picture.Id) as ViewResult; Assert.IsAssignableFrom <ShowPicModel>(showResult.Model); var resultModel = showResult.Model as ShowPicModel; Assert.AreEqual(resultModel.Url, picture.ImageUrl); }
public void ShouldNotBeAbleToAddPicIfNoOwner() { var fakeUser = new User { Email = "*****@*****.**" }; this.context.Users.Add(fakeUser); this.context.SaveChanges(); var doggo = new Dog { Name = "Debil", OwnerId = this.context.Users.FirstOrDefault(u => u.Email == "*****@*****.**").Id }; this.context.Dogs.Add(doggo); this.context.SaveChanges(); using (var stream = File.OpenRead(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpg")) { var pic = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(@"C:\Users\Miroslav\source\repos\RescueTinder\RescueTinder\Data\Files\Maconi.jpg")) { Headers = new HeaderDictionary(), ContentType = "image/jpg" }; var model = new AddPicModel { Id = doggo.Id, Pic = pic }; var result = this.picsController.Add(model).Result as RedirectToActionResult; Assert.AreEqual(0, doggo.Images.Count); } }
public async Task <IActionResult> Add(AddPicModel model) { var dog = this.context.Dogs.Single(d => d.Id == model.Id); if (!model.Pic.FileName.EndsWith(".jpg") || dog.OwnerId != this.userManager.GetUserId(User)) { return(View(model)); } else { var acc = new CloudinaryDotNet.Account("dmm9z8uow", "367813196612582", "I3kSZZCbEN-OHiyD35eh8mzyO8k"); var cloud = new Cloudinary(acc); var file = new FileDescription(model.Pic.FileName, model.Pic.OpenReadStream()); var upload = new ImageUploadParams() { File = file }; var image = await cloud.UploadAsync(upload); var pic = new Pic { ImageUrl = image.Uri.AbsoluteUri }; dog.Images.Add(pic); await context.SaveChangesAsync(); return(RedirectToAction("Dog", "Dogs", new { Id = model.Id })); } }