예제 #1
0
        public async Task DownloadPhotoCorrupt()
        {
            // Arrange
            var selectorStorage = new FakeSelectorStorage(ArrangeStorage());

            var item = await _query.AddItemAsync(new FileIndexItem
            {
                FileName        = "corrupt.jpg",
                ParentDirectory = "/",
                FileHash        = "hash"
            });

            // Act
            var controller = new DownloadPhotoController(_query, selectorStorage, new FakeIWebLogger())
            {
                ControllerContext = { HttpContext = new DefaultHttpContext() }
            };

            var actionResult = await controller.DownloadPhoto("/corrupt.jpg") as JsonResult;

            Assert.AreNotEqual(null, actionResult);

            Assert.AreEqual(500, controller.Response.StatusCode);

            await _query.RemoveItemAsync(item);
        }
예제 #2
0
        public void DownloadSidecar_TryToGetJpeg()
        {
            // Arrange
            var selectorStorage = new FakeSelectorStorage(ArrangeStorage());

            // Act
            var controller = new DownloadPhotoController(_query, selectorStorage, new FakeIWebLogger())
            {
                ControllerContext = { HttpContext = new DefaultHttpContext() }
            };
            var actionResult = controller.DownloadSidecar("/test.jpg") as NotFoundObjectResult;

            Assert.AreNotEqual(null, actionResult);
            Assert.AreEqual(404, actionResult.StatusCode);
        }
예제 #3
0
        public void DownloadSidecar_Ok()
        {
            // Arrange
            var selectorStorage = new FakeSelectorStorage(ArrangeStorage());

            // Act
            var controller = new DownloadPhotoController(_query, selectorStorage, new FakeIWebLogger());

            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            var actionResult = controller.DownloadSidecar("/test.xmp") as FileStreamResult;

            Assert.AreNotEqual(null, actionResult);

            actionResult.FileStream.Dispose();
        }
예제 #4
0
        public async Task DownloadPhoto_NotFound()
        {
            // Arrange
            var selectorStorage = new FakeSelectorStorage(ArrangeStorage());

            // Act
            var controller = new DownloadPhotoController(_query, selectorStorage, new FakeIWebLogger())
            {
                ControllerContext = { HttpContext = new DefaultHttpContext() }
            };
            var actionResult = await controller.DownloadPhoto("/not-found.jpg") as NotFoundObjectResult;

            Assert.AreNotEqual(null, actionResult);
            Assert.AreEqual(404, actionResult.StatusCode);
        }
예제 #5
0
        public async Task DownloadPhoto_isThumbnailFalse_ReturnFileStream_Test()
        {
            // Arrange
            var fileIndexItem   = InsertSearchData();
            var selectorStorage = new FakeSelectorStorage(ArrangeStorage());

            // Act
            var controller = new DownloadPhotoController(_query, selectorStorage, new FakeIWebLogger());

            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            var actionResult = await controller.DownloadPhoto(fileIndexItem.FilePath, false)  as FileStreamResult;

            Assert.AreNotEqual(null, actionResult);

            await actionResult.FileStream.DisposeAsync();
        }
예제 #6
0
        public async Task ApiController_DownloadPhoto_SourceImageIsMissing_Test()
        {
            // Arrange
            var fileIndexItem = InsertSearchData();

            // so the item does not exist on disk
            var storage         = ArrangeStorage();
            var selectorStorage = new FakeSelectorStorage();

            // Act
            var controller   = new DownloadPhotoController(_query, selectorStorage, new FakeIWebLogger());
            var actionResult = await controller.DownloadPhoto(fileIndexItem.FilePath)  as NotFoundObjectResult;

            Assert.AreNotEqual(null, actionResult);
            Assert.AreEqual(404, actionResult.StatusCode);
            Assert.AreEqual("source image missing /test.jpg", actionResult.Value);
        }
예제 #7
0
        public async Task DownloadPhoto_Thumb_base_folder_not_found_Test()
        {
            // Arrange
            var fileIndexItem = InsertSearchData();
            var storage       =
                new FakeIStorage(null, new List <string> {
                "/test.jpg"
            },
                                 new List <byte[]> {
                FakeCreateAn.CreateAnImage.Bytes
            });
            var selectorStorage = new FakeSelectorStorage(storage);


            // Act
            var controller = new DownloadPhotoController(_query, selectorStorage, new FakeIWebLogger());

            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            var actionResult = await controller.DownloadPhoto(fileIndexItem.FilePath)  as NotFoundObjectResult;

            Assert.AreNotEqual(null, actionResult);
            Assert.AreEqual(404, actionResult.StatusCode);
            Assert.AreEqual("ThumbnailTempFolder not found", actionResult.Value);
        }