Skip to content

Commit 21cb5d6

Browse files
fixup
1 parent 8386144 commit 21cb5d6

File tree

1 file changed

+35
-13
lines changed

1 file changed

+35
-13
lines changed

ICSharpCode.Decompiler.Tests/Helpers/RoslynToolset.cs

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
using NuGet.Packaging;
3131
using NuGet.Protocol;
3232
using NuGet.Protocol.Core.Types;
33+
using NuGet.Versioning;
3334

3435
using NUnit.Framework;
3536

@@ -57,19 +58,40 @@ protected async Task FetchPackage(string packageName, string version, string sou
5758

5859
ILogger logger = NullLogger.Instance;
5960
CancellationToken cancellationToken = CancellationToken.None;
60-
using var packageStream = File.OpenRead(Path.Combine(Roundtrip.RoundtripAssembly.TestDir, "nuget", $"{packageName}-{version}.nupkg"));
61-
62-
using PackageArchiveReader packageReader = new PackageArchiveReader(packageStream);
63-
NuspecReader nuspecReader = await packageReader.GetNuspecReaderAsync(cancellationToken).ConfigureAwait(false);
64-
65-
var files = (await packageReader.GetFilesAsync(cancellationToken).ConfigureAwait(false)).ToArray();
66-
files = files.Where(f => f.StartsWith(sourcePath, StringComparison.OrdinalIgnoreCase)).ToArray();
67-
await packageReader.CopyFilesAsync(outputPath, files,
68-
(sourceFile, targetPath, fileStream) => {
69-
fileStream.CopyToFile(targetPath);
70-
return targetPath;
71-
},
72-
logger, cancellationToken).ConfigureAwait(false);
61+
string pathToPackage = Path.Combine(Roundtrip.RoundtripAssembly.TestDir, "nuget", $"{packageName}-{version}.nupkg");
62+
Stream packageStream;
63+
if (File.Exists(pathToPackage))
64+
{
65+
packageStream = File.OpenRead(pathToPackage);
66+
}
67+
else
68+
{
69+
packageStream = new MemoryStream();
70+
71+
await resource.CopyNupkgToStreamAsync(
72+
packageName,
73+
NuGetVersion.Parse(version),
74+
packageStream,
75+
cache,
76+
logger,
77+
cancellationToken).ConfigureAwait(false);
78+
79+
packageStream.Position = 0;
80+
}
81+
using (packageStream)
82+
{
83+
using PackageArchiveReader packageReader = new PackageArchiveReader(packageStream);
84+
NuspecReader nuspecReader = await packageReader.GetNuspecReaderAsync(cancellationToken).ConfigureAwait(false);
85+
86+
var files = (await packageReader.GetFilesAsync(cancellationToken).ConfigureAwait(false)).ToArray();
87+
files = files.Where(f => f.StartsWith(sourcePath, StringComparison.OrdinalIgnoreCase)).ToArray();
88+
await packageReader.CopyFilesAsync(outputPath, files,
89+
(sourceFile, targetPath, fileStream) => {
90+
fileStream.CopyToFile(targetPath);
91+
return targetPath;
92+
},
93+
logger, cancellationToken).ConfigureAwait(false);
94+
}
7395
}
7496
}
7597

0 commit comments

Comments
 (0)