public async Task TryPutToCache_VerifyResultMatchesResultOfCacheOperation(bool expected) { // Arrange Mock <SharedMemoryMetadata> sharedMemMetaMock = CreateMockSharedMemoryMetadata(); SharedMemoryMetadata sharedMemMeta = sharedMemMetaMock.Object; bool isIncrementActiveRefs = false; bool isDeleteOnFailure = false; Mock <IFunctionDataCache> cacheMock = CreateMockFunctionDataCache(); cacheMock .Setup(c => c.TryPut(It.IsAny <FunctionDataCacheKey>(), sharedMemMeta, isIncrementActiveRefs, isDeleteOnFailure)) .Returns(expected) .Verifiable(); IFunctionDataCache cache = cacheMock.Object; BlobWithContainer <BlobBaseClient> blob = CreateBlobReference(ContainerName, "blob"); Mock <Stream> mockBlobStream = CreateMockBlobStream(); Stream blobStream = mockBlobStream.Object; CacheableWriteBlob cacheableWriteBlob = CreateProductUnderTest(blob, sharedMemMeta, blobStream, cache); // Act bool result = await cacheableWriteBlob.TryPutToCacheAsync(isDeleteOnFailure); // Assert Assert.AreEqual(expected, result); cacheMock.Verify(); }
public async Task TryPutToCache_CacheObjectNull_VerifyFailure() { // Arrange bool isIncrementActiveRefs = false; bool isDeleteOnFailure = false; Mock <IFunctionDataCache> cacheMock = CreateMockFunctionDataCache(); cacheMock .Setup(c => c.TryPut(It.IsAny <FunctionDataCacheKey>(), It.IsAny <SharedMemoryMetadata>(), isIncrementActiveRefs, isDeleteOnFailure)) .Throws(new Exception("This should not be called")); IFunctionDataCache cache = cacheMock.Object; BlobWithContainer <BlobBaseClient> blob = CreateBlobReference(ContainerName, "blob"); Mock <Stream> mockBlobStream = CreateMockBlobStream(); Stream blobStream = mockBlobStream.Object; CacheableWriteBlob cacheableWriteBlob = CreateProductUnderTest(blob, null, blobStream, cache); // Act bool result = await cacheableWriteBlob.TryPutToCacheAsync(isDeleteOnFailure); // Assert Assert.IsFalse(result); }