private string CreateBlobAndUploadToContainer(Mock <BlobContainerClient> containerMock, List <BlobItem> blobItems, string blobContent = "test", DateTimeOffset lastModified = default) { string blobName = Path.GetRandomFileName().Replace(".", ""); Mock <BlobBaseClient> item = new Mock <BlobBaseClient>(); if (lastModified == default) { lastModified = DateTimeOffset.UtcNow; } var blobProperties = BlobsModelFactory.BlobProperties(lastModified: lastModified); item.Setup(x => x.GetPropertiesAsync(null, It.IsAny <CancellationToken>())).ReturnsAsync(Response.FromValue(blobProperties, null)); item.Setup(x => x.Name).Returns(blobName); BlobItemProperties blobItemProperties = BlobsModelFactory.BlobItemProperties(true, lastModified: lastModified); BlobItem blobItem = BlobsModelFactory.BlobItem( name: blobName, properties: blobItemProperties ); blobItems.Add(blobItem); Mock <BlobClient> blobClientMock = new Mock <BlobClient>(); blobClientMock.Setup(x => x.Name).Returns(blobName); blobClientMock.Setup(x => x.Download(It.IsAny <CancellationToken>())).Returns(() => Response.FromValue(BlobsModelFactory.BlobDownloadInfo(content: new MemoryStream(Encoding.UTF8.GetBytes(blobContent))), null)); blobClientMock.Setup(x => x.GetProperties(It.IsAny <BlobRequestConditions>(), It.IsAny <CancellationToken>())) .Returns(Response.FromValue(blobProperties, null)); containerMock.Setup(x => x.GetBlobClient(blobName)).Returns(blobClientMock.Object); return(blobName); }
private static Mock <BlobBaseClient> SetupBlobMock(bool?isFetchSuccess = null, Dictionary <string, string> metadata = null) { if (metadata == null) { metadata = new Dictionary <string, string>(); } var blobMock = new Mock <BlobBaseClient>(MockBehavior.Strict); if (isFetchSuccess.HasValue) { var fetchAttributesSetup = blobMock.Setup(s => s.GetPropertiesAsync(null, It.IsAny <CancellationToken>())); if (isFetchSuccess.Value) { var blobProperties = BlobsModelFactory.BlobProperties(metadata: metadata); fetchAttributesSetup.Returns(Task.FromResult(Response.FromValue(blobProperties, null))); } else { var blobNotFoundException = new RequestFailedException(404, string.Empty); fetchAttributesSetup.Throws(blobNotFoundException); } fetchAttributesSetup.Verifiable(); } return(blobMock); }
public override BlobClient GetBlobClient(string blobName) { if (BlobClients.TryGetValue(blobName, out var client)) { return(client); } var blob = Blobs.SingleOrDefault(c => c.Name == blobName); if (blob != null) { return(new MockBlobClient(blobName) { Properties = BlobsModelFactory.BlobProperties(metadata: blob.Metadata) }); } return(new MockBlobClient(blobName)); }