Exemplo n.º 1
0
        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);
        }