コード例 #1
0
        public async Task WhenCalling_GetImageAsync_Should_ReturnNullIfNotFound()
        {
            var distributedCache = A.Fake <IDistributedCache>();

            A.CallTo(() => distributedCache.GetAsync(A <string> ._, A <CancellationToken> ._))
            .Returns(Task.FromResult((byte[])null));
            var sut    = new ImagesCache(distributedCache);
            var result = await sut.GetImageAsync(new ImageCacheKey("01_04_2019_001103"));

            result.Should().BeNull();
        }
コード例 #2
0
        public async Task WhenCalling_GetImageAsync_Should_CallDistributedCacheWithCorrectImageTypeInKey(string imageType, string expectedCacheKey)
        {
            var distributedCache = A.Fake <IDistributedCache>();
            var sut = new ImagesCache(distributedCache);
            await sut.GetImageAsync(new ImageCacheKey("01_04_2019_001103", null, null, null, imageType));

            A.CallTo(() => distributedCache.GetAsync(
                         A <string> .That.Matches(key => key == expectedCacheKey),
                         A <CancellationToken> ._))
            .MustHaveHappenedOnceExactly();
        }
コード例 #3
0
        public async Task WhenCalling_GetImageAsync_Should_CallDistributedCacheToRetrieveImage()
        {
            var distributedCache = A.Fake <IDistributedCache>();
            var sut = new ImagesCache(distributedCache);
            await sut.GetImageAsync(new ImageCacheKey("01_04_2019_001103"));

            A.CallTo(() => distributedCache.GetAsync(
                         A <string> .That.Matches(key => key == "01_04_2019_001103"),
                         A <CancellationToken> ._))
            .MustHaveHappenedOnceExactly();
        }
コード例 #4
0
        public async Task WhenCalling_GetImageAsync_Should_CallDistributedCacheWithWatermarkHashInKey()
        {
            var distributedCache = A.Fake <IDistributedCache>();
            var sut = new ImagesCache(distributedCache);
            await sut.GetImageAsync(new ImageCacheKey("01_04_2019_001103", null, null, "Some watermark text"));

            A.CallTo(() => distributedCache.GetAsync(
                         A <string> .That.Matches(key => key == "01_04_2019_001103|wm=NZyQwos0iWRAmdBFA9T6q+MZn9B0fgauzH3MJpNplsc="),
                         A <CancellationToken> ._))
            .MustHaveHappenedOnceExactly();
        }
コード例 #5
0
        public async Task WhenCalling_GetImageAsync_Should_ReturnCachedImageIfFound()
        {
            var distributedCache = A.Fake <IDistributedCache>();
            var testGdiImage     = TestHelpers.GetTestImage();

            A.CallTo(() => distributedCache.GetAsync(A <string> ._, A <CancellationToken> ._))
            .ReturnsLazily(callinfo =>
            {
                var testImage = new Image("01_04_2019_001103", testGdiImage);
                var bytes     = testImage.ToBytes();
                return(Task.FromResult(bytes));
            });
            var sut    = new ImagesCache(distributedCache);
            var result = await sut.GetImageAsync(new ImageCacheKey("01_04_2019_001103"));

            result.Name.Should().BeEquivalentTo("01_04_2019_001103");
            TestHelpers.CompareImages(testGdiImage, result.ToGdiImage()).Should().BeEquivalentTo(CompareResult.Same);
        }