public void CropImage()
        {
            // Arrange
            PassPhotoController mycontroller = new PassPhotoController();

            // Use Mock the Request Object that is used on Index
            Mock<ControllerContext> cc = new Mock<ControllerContext>();
            cc.Setup(d => d.HttpContext.Request.Path).Returns("/");
            String imgfolder = mytestutils.GetLocalRootPathToFile("\\uploaded_images\\");
            mycontroller.ControllerContext = cc.Object;

            SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter());
            HttpContext context = new HttpContext(request);
            HttpContext.Current = context;

            // Get full path to js file that is used in the controller
            String localjsfile = mytestutils.GetLocalRootPathToFile("\\js\\tiffjcroppreset.js");

            // Act
            ViewResult result = mycontroller.CropImage("testimage2.jpg", "raw", "0", "0", "220", "280", imgfolder, localjsfile) as ViewResult;

            Boolean isFileCropped = File.Exists(mytestutils.GetLocalRootPathToFile("\\uploaded_images\\cropped\\") + "testimage2.jpg");

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ViewBag.Height);
            Assert.IsNotNull(result.ViewBag.Width);
            Assert.IsNotNull(result.ViewBag.PreviewJSMarkup);
            Assert.IsNotNull(result.ViewBag.RootPath);
            Assert.IsNotNull(result.ViewBag.ImageName);
            Assert.IsNotNull(result.ViewBag.ImageUrl);
            Assert.IsNotNull(result.ViewBag.PreviewDisplay);
            Assert.IsTrue(isFileCropped);
        }
        public void Index()
        {
            // Arrange
            PassPhotoController mycontroller = new PassPhotoController();

            // Use Mock the Request Object that is used on Index
            Mock<ControllerContext> cc = new Mock<ControllerContext>();
            cc.Setup(d => d.HttpContext.Request.Path).Returns("/");
            cc.Setup(e => e.HttpContext.Server.MapPath("~/js/tiffjcroppreset.js")).Returns(mytestutils.GetLocalRootPathToFile("\\js\\tiffjcroppreset.js"));
            mycontroller.ControllerContext = cc.Object;

            SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter());
            HttpContext context = new HttpContext(request);
            HttpContext.Current = context;

            // Get full path to js file that is used in the controller
            String localjsfile = mytestutils.GetLocalRootPathToFile("\\js\\tiffjcroppreset.js");

            // Act
            ViewResult result = mycontroller.Index(localjsfile) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ViewBag.Height);
            Assert.IsNotNull(result.ViewBag.Width);
            Assert.IsNotNull(result.ViewBag.PreviewJSMarkup);
            Assert.IsNotNull(result.ViewBag.RootPath);
        }
        public void UploadImage()
        {
            // Arrange
            PassPhotoController mycontroller = new PassPhotoController();

            // Use Mock the Request Object that is used on Index
            Mock<ControllerContext> cc = new Mock<ControllerContext>();
            cc.Setup(d => d.HttpContext.Request.Path).Returns("/");
            String imgfolder = mytestutils.GetLocalRootPathToFile("\\uploaded_images\\");
            //cc.Setup(d => d.HttpContext.Server.MapPath("~/uploaded_images/")).Returns(imgfolder);
            mycontroller.ControllerContext = cc.Object;

            // setup mock object for uploaded file
            var file = new Mock<HttpPostedFileBase>();
            file.Setup(x => x.InputStream).Returns(_stream);
            file.Setup(x => x.ContentLength).Returns((int)_stream.Length);
            file.Setup(x => x.FileName).Returns("testimage1.jpg");

            SimpleWorkerRequest request = new SimpleWorkerRequest("", "", "", null, new StringWriter());
            HttpContext context = new HttpContext(request);
            HttpContext.Current = context;

            // Get full path to js file that is used in the controller
            String localjsfile = mytestutils.GetLocalRootPathToFile("\\js\\tiffjcroppreset.js");

            // Act
            ViewResult result = mycontroller.UploadImage(file.Object, "image_upload_test.jpg", "raw", imgfolder, localjsfile) as ViewResult;

            _stream.Dispose();

            Boolean isFileUploaded = File.Exists(mytestutils.GetLocalRootPathToFile("\\uploaded_images\\raw\\") + "image_upload_test.jpg");

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.ViewBag.Height);
            Assert.IsNotNull(result.ViewBag.Width);
            Assert.IsNotNull(result.ViewBag.PreviewJSMarkup);
            Assert.IsNotNull(result.ViewBag.RootPath);
            Assert.IsNotNull(result.ViewBag.ImageName);
            Assert.IsNotNull(result.ViewBag.ImageUrl);
            Assert.IsNotNull(result.ViewBag.PreviewDisplay);
            Assert.IsTrue(isFileUploaded);
        }