Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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 }));
            }
        }