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(); }
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(); }
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(); }
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(); }
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); }