Example #1
0
        public async Task Basic_Post_Get_Delete_Image()
        {
            using var stream = File.OpenRead("Assets/test.png");
            var imageFile = new FormFile(stream, 0, stream.Length, null, Path.GetFileName(stream.Name));

            var postResult = await _controller.PostImage(imageFile, "Media", "example_id");

            Assert.IsType <CreatedAtActionResult>(postResult.Result);

            var createdResult = postResult.Result as CreatedAtActionResult;
            var createdImage  = createdResult.Value as Image;

            var getResult = await _controller.GetImage(createdImage.Id);

            Assert.Equal(createdImage, getResult.Value);

            Assert.Equal(createdImage.ImageFile.Path, getResult.Value.ImageFile.Path);

            var deleteResult = await _controller.DeleteImage(createdImage.Id);

            Assert.Equal(createdImage, deleteResult.Value);

            getResult = await _controller.GetImage(createdImage.Id);

            Assert.Equal(Status.Deleted, getResult.Value.IsDeletedStatus);
        }
        public void GetImageReturnsOkResult()
        {
            //Act
            var result = controller.GetImage(1);

            //Assert
            Assert.IsType <OkObjectResult>(result.Result);
        }
Example #3
0
        public void GetImage_Returns404NotFound_WhenFileDoesNotExist()
        {
            // Arrange
            _fileStore.Setup(fileStore => fileStore.Exists(It.IsAny <string>()))
            .Returns(false);

            // Act
            IActionResult response = _controller.GetImage(string.Empty, "nonexistent-file");

            // Assert
            response.Should().BeAssignableTo <NotFoundResult>();
        }
Example #4
0
        public async Task WhenCallingGetImage_Should_ReturnFileStreamResultIfImageAvailable()
        {
            var imagesLibrary = A.Fake <IImagesLibrary>();

            A.CallTo(() => imagesLibrary.GetImageAsync(
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._))
            .ReturnsLazily(callInfo =>
            {
                var testImage = new Image(
                    callInfo.GetArgument <string>("imageName"),
                    TestHelpers.GetTestImage());
                return(Task.FromResult(testImage));
            });
            var sut    = new ImagesController(imagesLibrary, A.Dummy <ILogger <ImagesController> >());
            var result = await sut.GetImage("01_04_2019_001103");

            result.Should().BeOfType <FileStreamResult>();
            ((FileStreamResult)result).ContentType.Should().BeEquivalentTo("image/png");
            var actualGdiImage = TestHelpers.GetGdiImageFromStream(((FileStreamResult)result).FileStream);

            TestHelpers.CompareImages(actualGdiImage, TestHelpers.GetTestImage()).Should().Be(CompareResult.Same);
        }
        public async Task GetImageTest()
        {
            var ImageResult = await ImagesController.GetImage(1);

            var Image = ImageResult.Value as ImageDTO;

            Assert.IsNotNull(Image);
            Assert.AreEqual(Image.ImageId, 1);
            Assert.AreEqual(Image.ByteImage, Convert.ToBase64String(DbContent[0].ByteImage));
        }
Example #6
0
        public async Task WhenCallingGetImage_Should_CallImagesLibraryToGetRequestedImage()
        {
            var imagesLibrary = A.Fake <IImagesLibrary>();
            var sut           = new ImagesController(imagesLibrary, A.Dummy <ILogger <ImagesController> >());
            await sut.GetImage("01_04_2019_001103");

            A.CallTo(() => imagesLibrary.GetImageAsync(
                         A <string> .That.Matches(imageName => imageName == "01_04_2019_001103"),
                         A <string> .That.Matches(imageResolution => imageResolution == null),
                         A <string> .That.Matches(backgroundColour => backgroundColour == null),
                         A <string> .That.Matches(watermarkText => watermarkText == null),
                         A <string> .That.Matches(imageType => imageType == null)))
            .MustHaveHappenedOnceExactly();
        }
Example #7
0
        WhenCallingGetImage_AndWatermarkIsSpecified_Should_CallImagesLibraryAndSpecifyRequiredWatermark()
        {
            var imagesLibrary = A.Fake <IImagesLibrary>();
            var sut           = new ImagesController(imagesLibrary, A.Dummy <ILogger <ImagesController> >());
            await sut.GetImage("01_04_2019_001103", watermark : "Some watermark text");

            A.CallTo(() => imagesLibrary.GetImageAsync(
                         A <string> .That.Matches(imageName => imageName == "01_04_2019_001103"),
                         A <string> .That.Matches(imageResolution => imageResolution == null),
                         A <string> .That.Matches(backgroundColour => backgroundColour == null),
                         A <string> .That.Matches(watermarkText => watermarkText == "Some watermark text"),
                         A <string> .That.Matches(imageType => imageType == null)))
            .MustHaveHappenedOnceExactly();
        }
Example #8
0
        public async Task WhenCallingGetImage_Should_ReturnNotFoundIfImageNotAvailable()
        {
            var imagesLibrary = A.Fake <IImagesLibrary>();

            A.CallTo(() => imagesLibrary.GetImageAsync(
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._))
            .Throws <ImageNotAvailableException>();
            var sut    = new ImagesController(imagesLibrary, A.Dummy <ILogger <ImagesController> >());
            var result = await sut.GetImage("01_04_2019_001103");

            result.Should().BeOfType <NotFoundResult>();
        }
Example #9
0
        public async Task WhenCallingGetImage_Should_ReturnBadRequestIfImageTypeFormatExceptionThrown()
        {
            var imagesLibrary = A.Fake <IImagesLibrary>();

            A.CallTo(() => imagesLibrary.GetImageAsync(
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._))
            .Throws(new ImageLibraryException("", new ImageTypeFormatException()));
            var sut    = new ImagesController(imagesLibrary, A.Dummy <ILogger <ImagesController> >());
            var result = await sut.GetImage("01_04_2019_001103", imageType : "a bad image type string");

            result.Should().BeOfType <BadRequestObjectResult>();
        }
Example #10
0
        public async Task WhenCallingGetImage_Should_ReturnInternalServerErrorStatusIfExceptionThrown()
        {
            var imagesLibrary = A.Fake <IImagesLibrary>();

            A.CallTo(() => imagesLibrary.GetImageAsync(
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._,
                         A <string> ._))
            .Throws <Exception>();
            var sut    = new ImagesController(imagesLibrary, A.Dummy <ILogger <ImagesController> >());
            var result = await sut.GetImage("01_04_2019_001103");

            result.Should().BeOfType <StatusCodeResult>();
            ((StatusCodeResult)result).StatusCode.Should().Be((int)HttpStatusCode.InternalServerError);
        }
Example #11
0
        public void CallingGetImageReturnsImageObject()
        {
            var image = new Image {
                Id = ObjectId.GenerateNewId()
            };

            var dataAccessMock = new Mock <IImageRepository>();

            dataAccessMock.Setup(x => x.Get(It.IsAny <string>())).Returns(image);
            dataAccessMock.Setup(x => x.GetPath(It.IsAny <Image>())).Returns("ImagePath");

            var controller = new ImagesController(dataAccessMock.Object, null, null);

            SetupImagePath(controller);

            var guid   = Guid.NewGuid().ToString();
            var result = controller.GetImage(guid);

            //check if its image/jpeg
            Assert.NotNull(result);
            Assert.That(result.Image.Id, Is.EqualTo(image.Id.ToString()));
        }
Example #12
0
        public void GetImage_ShouldCreateOne()
        {
            var results = _controller.GetImage(32, 35, 100, 100).Result as FileContentResult;

            Assert.IsNotNull(results);
        }
Example #13
0
        public void GetImage_NoUrl_ShouldNotFound()
        {
            var results = _controller.GetImage("42").Result as NotFoundResult;

            Assert.IsNotNull(results);
        }