public async Task UploadImage_Success()
        {
            // create image
            var img = MockHelpers.CreateImage(DateTime.Now.ToShortDateString(), "Caption 1", "location 1");

            // create a new user
            var pkUser = await MockHelpers.CreateNewUser(1, Guid.NewGuid().ToString(), "*****@*****.**", "Password@123", _fixture);

            // get user manager
            var _userManager = MockHelpers.CreateMockUserManager(pkUser);

            var user = new ClaimsPrincipal(new ClaimsIdentity(new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, pkUser.Id)//,
                //new Claim(ClaimTypes.Name, pkUser.UserName),
                // new Claim(ClaimTypes.Email, pkUser.Email),
                //new Claim(ClaimTypes.Role, "Admin")
            }));

            // upload image
            var imgCont = new ImageController(_webHostEnvironment.Object, _configurationManager.Object, _userManager, _fixture.Context, _imapper);

            imgCont.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };
            var response = await imgCont.UploadImage(img) as StatusCodeResult;

            Assert.Equal(201, response.StatusCode); //success
        }
        public async Task Get_ImageByID(string idType, int statusCode)
        {
            // create image
            var img = MockHelpers.CreateImage(DateTime.Now.ToShortDateString(), "Caption 1", "location 1");

            // create a new user
            var pkUser = await MockHelpers.CreateNewUser(1, Guid.NewGuid().ToString(), "*****@*****.**", "Password@123", _fixture);

            // get user manager
            var _userManager = MockHelpers.CreateMockUserManager(pkUser);

            var user = new ClaimsPrincipal(new ClaimsIdentity(new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, pkUser.Id)//,
                //new Claim(ClaimTypes.Name, pkUser.UserName),
                // new Claim(ClaimTypes.Email, pkUser.Email),
                //new Claim(ClaimTypes.Role, "Admin")
            }));

            // upload image
            var imgCont = new ImageController(_webHostEnvironment.Object, _configurationManager.Object, _userManager, _fixture.Context, _imapper);

            imgCont.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };
            ActionResult upRes = await imgCont.UploadImage(img);


            var imgContr = new ImageController(_webHostEnvironment.Object, _configurationManager.Object, _userManager, _fixture.Context, _imapper);

            if (idType == "invalid")
            {
                var response = await imgContr.GetById(Guid.NewGuid().ToString()) as ObjectResult;

                Assert.Equal(statusCode, response.StatusCode);
                return;
            }
            // upload an image



            var filtContr = new FilterController(_fixture.Context, _imapper);

            var responseV = await filtContr.Images() as ObjectResult;

            var imlst = responseV.Value as List <PikchaImageFilterDTO>;

            var responseS = await imgContr.GetById(imlst[0].Id) as ObjectResult;

            Assert.Equal(statusCode, responseS.StatusCode);
        }
        private async Task createImages()
        {
            // create a new user
            var pkUser = await MockHelpers.CreateNewUser(41, Guid.NewGuid().ToString(), "*****@*****.**", "Password@123", _fixture);

            var authImgContr = CreateAuthenticatedImageController(pkUser);

            DirectoryInfo d = new DirectoryInfo(@"C:\Users\tshanmuganat\Documents\hr-photos"); //Assuming Test is your Folder

            FileInfo[] Files = d.GetFiles();                                                   //Getting Text files
            Random     rnd   = new Random();

            foreach (FileInfo file in Files)
            {
                var img = MockHelpers.CreateImage(DateTime.Now.ToShortDateString(), "Caption 1", "location 1", file.FullName);

                if (rnd.Next(1, 100) > 50)
                {
                    img.Signature = @"TestPhotos\d01de11c-3317-4dff-b3f7-7f71f68b8210-inv.png";
                }
                else
                {
                    img.Signature = @"TestPhotos\d01de11c-3317-4dff-b3f7-7f71f68b8210-org.png";
                }

                ActionResult upRes = await authImgContr.UploadImage(img);
            }


            DirectoryInfo dir = new DirectoryInfo(@"C:\Users\tshanmuganat\Documents\Projects\pikcha\dev\PikchaWebApp\PikchaWebApp.Test\bin\Debug\netcoreapp3.0\wwwroot\Uploads\Images\Thumbnail"); //Assuming Test is your Folder

            FileInfo[] dFiles = dir.GetFiles("");                                                                                                                                                  //Getting Text files
            string     str    = "";

            foreach (FileInfo file in dFiles)
            {
                str = str + ", " + file.Name;
            }

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(System.IO.File.Create("uploadedImages.txt")))
            {
                file.WriteLine(str);
            }
        }
Exemple #4
0
        public async Task Post_UploadAvatarImage(string idType, int statusCode)
        {
            // TODO : Add login function
            // Arrange
            var configurationSection = new Mock <IConfigurationSection>();

            configurationSection.Setup(a => a.Value).Returns("uploads/avatars");
            _configurationManager.Setup(a => a.GetSection("UploadDirectories:Avatar")).Returns(configurationSection.Object);

            // create a new user
            string userId = Guid.NewGuid().ToString();
            var    pkUser = await MockHelpers.CreateNewUser(51, userId, "*****@*****.**", "Password@123", _fixture);

            var profCntrl = CreateAuthenticatedProfileController(pkUser);

            // create a file
            string imagePath = "wwwroot/TestPhotos/black-white.jpg";
            var    img       = MockHelpers.CreateImage(DateTime.Now.ToShortDateString(), "Caption 1", "location 1", imagePath);

            using (var ms = new MemoryStream())
            {
                //ms.Position = 0;

                img.ImageFile.CopyTo(ms);
                var    fileBytes  = ms.ToArray();
                string imgContent = Convert.ToBase64String(fileBytes);

                var json   = "{ \"avatarContent\": \"" + imgContent + "\"}";
                var bytes  = System.Text.Encoding.UTF8.GetBytes(json.ToCharArray());
                var stream = new MemoryStream(bytes);

                //ms.Position = 0;
                profCntrl.HttpContext.Request.Body = stream;

                // act on the Base64 data
                var result = await profCntrl.UploadAvatarImage(pkUser.Id) as ObjectResult;

                Assert.Equal(statusCode, result.StatusCode);

                var qUsr = result.Value as AuthenticatedUserDTO;

                Assert.True(File.Exists(PikchaConstants.PIKCHA_IMAGE_UPLOAD_ROOT_FOLDER + qUsr.Avatar));
            }
        }
        public async Task Post_IncrementViewCount()
        {
            var img = MockHelpers.CreateImage(DateTime.Now.ToShortDateString(), "Caption 1", "location 1");
            // create a new user
            var pkUser = await MockHelpers.CreateNewUser(41, Guid.NewGuid().ToString(), "*****@*****.**", "Password@123", _fixture);

            var authImgContr = CreateAuthenticatedImageController(pkUser);

            ActionResult upRes = await authImgContr.UploadImage(img);

            var imgContr = new ImageController(_webHostEnvironment.Object, _configurationManager.Object, _userManager, _fixture.Context, _imapper);

            var pkImg = _fixture.Context.PikchaImages.First();

            var responseV = await imgContr.IncrementViewCount(pkImg.Id) as ObjectResult;

            Assert.Equal(200, responseV.StatusCode);

            Assert.True(pkImg.Views.Count() > 0);
        }
Exemple #6
0
        //[InlineData("invalid", StatusCodes.Status500InternalServerError)]
        public async Task <PikchaUser> Post_Promote_Photo_Grapher_Test(string idType, int statusCode)
        {
            // create a new user
            string userId = Guid.NewGuid().ToString();
            var    pkUser = await MockHelpers.CreateNewUser(31, userId, "*****@*****.**", "Password@123", _fixture);

            var profCntrl = CreateAuthenticatedProfileController(pkUser);

            // create a photo grapaher role
            var roleManager = _fixture.ServiceProvider.GetRequiredService <RoleManager <IdentityRole> >();
            var role        = new IdentityRole();

            //role.Id = Guid.NewGuid().ToString();
            role.Name = PikchaConstants.PIKCHA_ROLES_ARTIST_NAME;
            var s = roleManager.CreateAsync(role).Result;

            // create a file
            string imagePath = "wwwroot/TestPhotos/black-white.jpg";
            var    img       = MockHelpers.CreateImage(DateTime.Now.ToShortDateString(), "Caption 1", "location 1", imagePath);

            if (idType == "invalid")
            {
                using (var ms = new MemoryStream())
                {
                    img.ImageFile.CopyTo(ms);
                    //var fileBytes = ms.ToArray();
                    //string imgContent = Convert.ToBase64String(fileBytes);
                    profCntrl.HttpContext.Request.Body = ms;;

                    var result2 = await profCntrl.PromoteUserToArtist(Guid.NewGuid().ToString()) as ObjectResult;

                    Assert.Equal(statusCode, result2.StatusCode);

                    return(pkUser);
                }
            }
            using (var ms = new MemoryStream())
            {
                //ms.Position = 0;

                img.ImageFile.CopyTo(ms);
                var    fileBytes  = ms.ToArray();
                string imgContent = Convert.ToBase64String(fileBytes);

                var json   = "{ \"signatureContent\": \"" + imgContent + "\"}";
                var bytes  = System.Text.Encoding.UTF8.GetBytes(json.ToCharArray());
                var stream = new MemoryStream(bytes);

                //ms.Position = 0;
                profCntrl.HttpContext.Request.Body = stream;

                // act on the Base64 data
                var result = await profCntrl.PromoteUserToArtist(pkUser.Id) as ObjectResult;

                Assert.Equal(statusCode, result.StatusCode);

                var qUsr = result.Value as AuthenticatedUserDTO;

                Assert.Contains(PikchaConstants.PIKCHA_ROLES_ARTIST_NAME, qUsr.Roles);

                return(pkUser);
            }
        }
Exemple #7
0
        public async Task Get_ReturnsJson_ListofImages(string type, int start, int count, int expectedStatus)
        {
            // create image
            var img = MockHelpers.CreateImage(DateTime.Now.ToShortDateString(), "Caption 1", "location 1");

            // create a new user
            var pkUser = await MockHelpers.CreateNewUser(1, Guid.NewGuid().ToString(), "*****@*****.**", "Password@123", _fixture);

            // get user manager
            var _userManager = MockHelpers.CreateMockUserManager(pkUser);

            var user = new ClaimsPrincipal(new ClaimsIdentity(new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, pkUser.Id)//,
                //new Claim(ClaimTypes.Name, pkUser.UserName),
                // new Claim(ClaimTypes.Email, pkUser.Email),
                //new Claim(ClaimTypes.Role, "Admin")
            }));

            // upload image
            var imgCont = new ImageController(_webHostEnvironment.Object, _configurationManager.Object, _userManager, _fixture.Context, _imapper);

            imgCont.ControllerContext = new ControllerContext()
            {
                HttpContext = new DefaultHttpContext()
                {
                    User = user
                }
            };
            ActionResult upRes = await imgCont.UploadImage(img);

            // check uploaded images are there
            var          filtContr = new FilterController(_fixture.Context, _imapper);
            ObjectResult response;

            if (type == "artistId")
            {
                response = await filtContr.Images(type, start, count, pkUser.Id) as ObjectResult;
            }
            else
            {
                response = await filtContr.Images(type, start, count) as ObjectResult;
            }
            Assert.Equal(expectedStatus, response.StatusCode);
            if (expectedStatus != StatusCodes.Status200OK)
            {
                return;
            }

            //var okResult = Assert.IsType<OkObjectResult>(response);
            if (type == "pikcha100")
            {
                var imlst = response.Value as List <PikchaImageFilterDTO>;
                // validate uploaded image
                Assert.True(imlst.Exists(i => i.Title == img.Title));

                Assert.True(File.Exists(PikchaConstants.PIKCHA_IMAGE_UPLOAD_ROOT_FOLDER + imlst[0].Thumbnail));
                Assert.True(File.Exists(PikchaConstants.PIKCHA_IMAGE_UPLOAD_ROOT_FOLDER + imlst[0].Watermark));
                return;
            }

            var lst = response.Value as List <PikchaImageFilterDTO>;

            // validate uploaded image
            Assert.True(lst.Exists(i => i.Title == img.Title));

            Assert.True(File.Exists(PikchaConstants.PIKCHA_IMAGE_UPLOAD_ROOT_FOLDER + lst[0].Thumbnail));
            Assert.True(File.Exists(PikchaConstants.PIKCHA_IMAGE_UPLOAD_ROOT_FOLDER + lst[0].Watermark));
        }