public async Task StoreStreamAsync(string id, string version, FileArtifactType type, Func <Stream, Task> writeAsync) { using (var memoryStream = new MemoryStream()) { await writeAsync(memoryStream); var blobName = _blobNameProvider.GetLatestBlobName(id, version, type); var contentType = GetContentType(type); memoryStream.Position = 0; var cacheKey = GetCacheKey(id, version, type); try { await _blobStorageService.UploadStreamAsync(blobName, contentType, memoryStream); } catch { // Clear the cache since we don't know what happened. _memoryCache.Remove(cacheKey); throw; } CacheMemoryStream(cacheKey, memoryStream); } }
public void GetLatestNuspecBlobName(string id, string version, string expected) { // Arrange var target = new PackageBlobNameProvider(); // Act var actual = target.GetLatestBlobName(id, version, FileArtifactType.Nuspec); // Assert Assert.Equal(expected, actual); }