dependabot-nuget 0.258.0 → 0.260.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/helpers/lib/NuGetUpdater/Directory.Packages.props +2 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +2 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs +255 -191
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +63 -35
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DiscoveryWorker.cs +107 -14
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +9 -5
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathHelper.cs +18 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +6 -1
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.DotNetToolsJson.cs +6 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.GlobalJson.cs +6 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.PackagesConfig.cs +11 -21
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Proj.cs +95 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +204 -62
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +64 -45
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/MockNuGetPackage.cs +419 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/NuGetUpdater.Core.Test.csproj +1 -0
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TemporaryDirectory.cs +7 -2
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs +77 -19
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs +120 -91
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DotNetTools.cs +132 -97
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.GlobalJson.cs +93 -75
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Mixed.cs +45 -42
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs +1089 -956
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +1624 -1291
- data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +296 -293
- data/helpers/lib/NuGetUpdater/global.json +6 -0
- data/lib/dependabot/nuget/file_parser.rb +4 -5
- data/lib/dependabot/nuget/file_updater.rb +1 -1
- data/lib/dependabot/nuget/update_checker/dependency_finder.rb +7 -2
- data/lib/dependabot/nuget/update_checker/property_updater.rb +1 -0
- data/lib/dependabot/nuget/update_checker/version_finder.rb +2 -3
- data/lib/dependabot/nuget/update_checker.rb +1 -0
- metadata +8 -5
@@ -1,5 +1,9 @@
|
|
1
1
|
using System.Collections.Immutable;
|
2
2
|
|
3
|
+
using NuGet.Build.Tasks;
|
4
|
+
|
5
|
+
using NuGetUpdater.Core.Test.Update;
|
6
|
+
|
3
7
|
using Xunit;
|
4
8
|
|
5
9
|
namespace NuGetUpdater.Core.Test.Utilities;
|
@@ -15,10 +19,10 @@ public class MSBuildHelperTests : TestBase
|
|
15
19
|
var projectContents = """
|
16
20
|
<Project>
|
17
21
|
<PropertyGroup>
|
18
|
-
<TargetFramework>
|
22
|
+
<TargetFramework>net8.0</TargetFramework>
|
19
23
|
</PropertyGroup>
|
20
24
|
<ItemGroup>
|
21
|
-
<PackageReference Include="
|
25
|
+
<PackageReference Include="Some.Package" Version="$(PackageVersion1)" />
|
22
26
|
</ItemGroup>
|
23
27
|
</Project>
|
24
28
|
""";
|
@@ -36,10 +40,10 @@ public class MSBuildHelperTests : TestBase
|
|
36
40
|
Assert.Equal("""
|
37
41
|
<Project>
|
38
42
|
<PropertyGroup>
|
39
|
-
<TargetFramework>
|
43
|
+
<TargetFramework>net8.0</TargetFramework>
|
40
44
|
</PropertyGroup>
|
41
45
|
<ItemGroup>
|
42
|
-
<PackageReference Include="
|
46
|
+
<PackageReference Include="Some.Package" Version="1.1.1" />
|
43
47
|
</ItemGroup>
|
44
48
|
</Project>
|
45
49
|
""", evaluatedValue);
|
@@ -52,10 +56,10 @@ public class MSBuildHelperTests : TestBase
|
|
52
56
|
var projectContents = """
|
53
57
|
<Project>
|
54
58
|
<PropertyGroup>
|
55
|
-
<TargetFramework>
|
59
|
+
<TargetFramework>net8.0</TargetFramework>
|
56
60
|
</PropertyGroup>
|
57
61
|
<ItemGroup>
|
58
|
-
<PackageReference Include="
|
62
|
+
<PackageReference Include="Some.Package" Version="$(PackageVersion1)" />
|
59
63
|
</ItemGroup>
|
60
64
|
</Project>
|
61
65
|
""";
|
@@ -125,10 +129,13 @@ public class MSBuildHelperTests : TestBase
|
|
125
129
|
|
126
130
|
[Theory]
|
127
131
|
[MemberData(nameof(GetTopLevelPackageDependencyInfosTestData))]
|
128
|
-
public async Task TopLevelPackageDependenciesCanBeDetermined(TestFile[] buildFileContents, Dependency[] expectedTopLevelDependencies)
|
132
|
+
public async Task TopLevelPackageDependenciesCanBeDetermined(TestFile[] buildFileContents, Dependency[] expectedTopLevelDependencies, MockNuGetPackage[] testPackages)
|
129
133
|
{
|
130
134
|
using var testDirectory = new TemporaryDirectory();
|
131
135
|
var buildFiles = new List<ProjectBuildFile>();
|
136
|
+
|
137
|
+
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory(testPackages, testDirectory.DirectoryPath);
|
138
|
+
|
132
139
|
foreach (var (path, content) in buildFileContents)
|
133
140
|
{
|
134
141
|
var fullPath = Path.Combine(testDirectory.DirectoryPath, path);
|
@@ -144,30 +151,29 @@ public class MSBuildHelperTests : TestBase
|
|
144
151
|
public async Task AllPackageDependenciesCanBeTraversed()
|
145
152
|
{
|
146
153
|
using var temp = new TemporaryDirectory();
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
new("System.ComponentModel.Annotations", "5.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
159
|
-
new("System.Diagnostics.DiagnosticSource", "7.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
160
|
-
new("System.Memory", "4.5.5", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
161
|
-
new("System.Numerics.Vectors", "4.4.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
162
|
-
new("System.Runtime.CompilerServices.Unsafe", "6.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
163
|
-
new("System.Threading.Tasks.Extensions", "4.5.4", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
154
|
+
MockNuGetPackage[] testPackages =
|
155
|
+
[
|
156
|
+
MockNuGetPackage.CreateSimplePackage("Package.A", "1.0.0", "netstandard2.0", [(null, [("Package.B", "2.0.0")])]),
|
157
|
+
MockNuGetPackage.CreateSimplePackage("Package.B", "2.0.0", "netstandard2.0", [(null, [("Package.C", "3.0.0")])]),
|
158
|
+
MockNuGetPackage.CreateSimplePackage("Package.C", "3.0.0", "netstandard2.0", [(null, [("Package.D", "4.0.0")])]),
|
159
|
+
MockNuGetPackage.CreateSimplePackage("Package.D", "4.0.0", "netstandard2.0"),
|
160
|
+
];
|
161
|
+
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory(testPackages, temp.DirectoryPath);
|
162
|
+
|
163
|
+
Dependency[] expectedDependencies =
|
164
|
+
[
|
164
165
|
new("NETStandard.Library", "2.0.3", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
165
|
-
|
166
|
-
|
166
|
+
new("Package.A", "1.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"]),
|
167
|
+
new("Package.B", "2.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
168
|
+
new("Package.C", "3.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
169
|
+
new("Package.D", "4.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
170
|
+
];
|
171
|
+
Dependency[] actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(
|
167
172
|
temp.DirectoryPath,
|
168
173
|
temp.DirectoryPath,
|
169
174
|
"netstandard2.0",
|
170
|
-
[new Dependency("
|
175
|
+
[new Dependency("Package.A", "1.0.0", DependencyType.Unknown)]
|
176
|
+
);
|
171
177
|
AssertEx.Equal(expectedDependencies, actualDependencies);
|
172
178
|
}
|
173
179
|
|
@@ -175,101 +181,126 @@ public class MSBuildHelperTests : TestBase
|
|
175
181
|
public async Task AllPackageDependencies_DoNotTruncateLongDependencyLists()
|
176
182
|
{
|
177
183
|
using var temp = new TemporaryDirectory();
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
new("
|
238
|
-
new("
|
239
|
-
new("
|
240
|
-
new("
|
241
|
-
new("
|
242
|
-
new("
|
243
|
-
new("
|
244
|
-
new("
|
245
|
-
new("
|
246
|
-
new("
|
247
|
-
new("
|
248
|
-
new("
|
249
|
-
new("
|
250
|
-
new("
|
251
|
-
new("
|
252
|
-
new("
|
253
|
-
|
184
|
+
MockNuGetPackage[] testPackages =
|
185
|
+
[
|
186
|
+
MockNuGetPackage.CreateSimplePackage("Package.1A", "1.0.0", "net8.0", [(null, [("Package.1B", "2.0.0")])]),
|
187
|
+
MockNuGetPackage.CreateSimplePackage("Package.1B", "2.0.0", "net8.0", [(null, [("Package.1C", "3.0.0")])]),
|
188
|
+
MockNuGetPackage.CreateSimplePackage("Package.1C", "3.0.0", "net8.0", [(null, [("Package.1D", "4.0.0")])]),
|
189
|
+
MockNuGetPackage.CreateSimplePackage("Package.1D", "4.0.0", "net8.0", [(null, [("Package.1E", "5.0.0")])]),
|
190
|
+
MockNuGetPackage.CreateSimplePackage("Package.1E", "5.0.0", "net8.0", [(null, [("Package.1F", "6.0.0")])]),
|
191
|
+
MockNuGetPackage.CreateSimplePackage("Package.1F", "6.0.0", "net8.0", [(null, [("Package.1G", "7.0.0")])]),
|
192
|
+
MockNuGetPackage.CreateSimplePackage("Package.1G", "7.0.0", "net8.0", [(null, [("Package.1H", "8.0.0")])]),
|
193
|
+
MockNuGetPackage.CreateSimplePackage("Package.1H", "8.0.0", "net8.0", [(null, [("Package.1I", "9.0.0")])]),
|
194
|
+
MockNuGetPackage.CreateSimplePackage("Package.1I", "9.0.0", "net8.0", [(null, [("Package.1J", "10.0.0")])]),
|
195
|
+
MockNuGetPackage.CreateSimplePackage("Package.1J", "10.0.0", "net8.0", [(null, [("Package.1K", "11.0.0")])]),
|
196
|
+
MockNuGetPackage.CreateSimplePackage("Package.1K", "11.0.0", "net8.0", [(null, [("Package.1L", "12.0.0")])]),
|
197
|
+
MockNuGetPackage.CreateSimplePackage("Package.1L", "12.0.0", "net8.0", [(null, [("Package.1M", "13.0.0")])]),
|
198
|
+
MockNuGetPackage.CreateSimplePackage("Package.1M", "13.0.0", "net8.0", [(null, [("Package.1N", "14.0.0")])]),
|
199
|
+
MockNuGetPackage.CreateSimplePackage("Package.1N", "14.0.0", "net8.0", [(null, [("Package.1O", "15.0.0")])]),
|
200
|
+
MockNuGetPackage.CreateSimplePackage("Package.1O", "15.0.0", "net8.0", [(null, [("Package.1P", "16.0.0")])]),
|
201
|
+
MockNuGetPackage.CreateSimplePackage("Package.1P", "16.0.0", "net8.0", [(null, [("Package.1Q", "17.0.0")])]),
|
202
|
+
MockNuGetPackage.CreateSimplePackage("Package.1Q", "17.0.0", "net8.0", [(null, [("Package.1R", "18.0.0")])]),
|
203
|
+
MockNuGetPackage.CreateSimplePackage("Package.1R", "18.0.0", "net8.0", [(null, [("Package.1S", "19.0.0")])]),
|
204
|
+
MockNuGetPackage.CreateSimplePackage("Package.1S", "19.0.0", "net8.0", [(null, [("Package.1T", "20.0.0")])]),
|
205
|
+
MockNuGetPackage.CreateSimplePackage("Package.1T", "20.0.0", "net8.0", [(null, [("Package.1U", "21.0.0")])]),
|
206
|
+
MockNuGetPackage.CreateSimplePackage("Package.1U", "21.0.0", "net8.0", [(null, [("Package.1V", "22.0.0")])]),
|
207
|
+
MockNuGetPackage.CreateSimplePackage("Package.1V", "22.0.0", "net8.0", [(null, [("Package.1W", "23.0.0")])]),
|
208
|
+
MockNuGetPackage.CreateSimplePackage("Package.1W", "23.0.0", "net8.0", [(null, [("Package.1X", "24.0.0")])]),
|
209
|
+
MockNuGetPackage.CreateSimplePackage("Package.1X", "24.0.0", "net8.0", [(null, [("Package.1Y", "25.0.0")])]),
|
210
|
+
MockNuGetPackage.CreateSimplePackage("Package.1Y", "25.0.0", "net8.0", [(null, [("Package.1Z", "26.0.0")])]),
|
211
|
+
MockNuGetPackage.CreateSimplePackage("Package.1Z", "26.0.0", "net8.0", [(null, [("Package.2A", "1.0.0")])]),
|
212
|
+
MockNuGetPackage.CreateSimplePackage("Package.2A", "1.0.0", "net8.0", [(null, [("Package.2B", "2.0.0")])]),
|
213
|
+
MockNuGetPackage.CreateSimplePackage("Package.2B", "2.0.0", "net8.0", [(null, [("Package.2C", "3.0.0")])]),
|
214
|
+
MockNuGetPackage.CreateSimplePackage("Package.2C", "3.0.0", "net8.0", [(null, [("Package.2D", "4.0.0")])]),
|
215
|
+
MockNuGetPackage.CreateSimplePackage("Package.2D", "4.0.0", "net8.0", [(null, [("Package.2E", "5.0.0")])]),
|
216
|
+
MockNuGetPackage.CreateSimplePackage("Package.2E", "5.0.0", "net8.0", [(null, [("Package.2F", "6.0.0")])]),
|
217
|
+
MockNuGetPackage.CreateSimplePackage("Package.2F", "6.0.0", "net8.0", [(null, [("Package.2G", "7.0.0")])]),
|
218
|
+
MockNuGetPackage.CreateSimplePackage("Package.2G", "7.0.0", "net8.0", [(null, [("Package.2H", "8.0.0")])]),
|
219
|
+
MockNuGetPackage.CreateSimplePackage("Package.2H", "8.0.0", "net8.0", [(null, [("Package.2I", "9.0.0")])]),
|
220
|
+
MockNuGetPackage.CreateSimplePackage("Package.2I", "9.0.0", "net8.0", [(null, [("Package.2J", "10.0.0")])]),
|
221
|
+
MockNuGetPackage.CreateSimplePackage("Package.2J", "10.0.0", "net8.0", [(null, [("Package.2K", "11.0.0")])]),
|
222
|
+
MockNuGetPackage.CreateSimplePackage("Package.2K", "11.0.0", "net8.0", [(null, [("Package.2L", "12.0.0")])]),
|
223
|
+
MockNuGetPackage.CreateSimplePackage("Package.2L", "12.0.0", "net8.0", [(null, [("Package.2M", "13.0.0")])]),
|
224
|
+
MockNuGetPackage.CreateSimplePackage("Package.2M", "13.0.0", "net8.0", [(null, [("Package.2N", "14.0.0")])]),
|
225
|
+
MockNuGetPackage.CreateSimplePackage("Package.2N", "14.0.0", "net8.0", [(null, [("Package.2O", "15.0.0")])]),
|
226
|
+
MockNuGetPackage.CreateSimplePackage("Package.2O", "15.0.0", "net8.0", [(null, [("Package.2P", "16.0.0")])]),
|
227
|
+
MockNuGetPackage.CreateSimplePackage("Package.2P", "16.0.0", "net8.0", [(null, [("Package.2Q", "17.0.0")])]),
|
228
|
+
MockNuGetPackage.CreateSimplePackage("Package.2Q", "17.0.0", "net8.0", [(null, [("Package.2R", "18.0.0")])]),
|
229
|
+
MockNuGetPackage.CreateSimplePackage("Package.2R", "18.0.0", "net8.0", [(null, [("Package.2S", "19.0.0")])]),
|
230
|
+
MockNuGetPackage.CreateSimplePackage("Package.2S", "19.0.0", "net8.0", [(null, [("Package.2T", "20.0.0")])]),
|
231
|
+
MockNuGetPackage.CreateSimplePackage("Package.2T", "20.0.0", "net8.0", [(null, [("Package.2U", "21.0.0")])]),
|
232
|
+
MockNuGetPackage.CreateSimplePackage("Package.2U", "21.0.0", "net8.0", [(null, [("Package.2V", "22.0.0")])]),
|
233
|
+
MockNuGetPackage.CreateSimplePackage("Package.2V", "22.0.0", "net8.0", [(null, [("Package.2W", "23.0.0")])]),
|
234
|
+
MockNuGetPackage.CreateSimplePackage("Package.2W", "23.0.0", "net8.0", [(null, [("Package.2X", "24.0.0")])]),
|
235
|
+
MockNuGetPackage.CreateSimplePackage("Package.2X", "24.0.0", "net8.0", [(null, [("Package.2Y", "25.0.0")])]),
|
236
|
+
MockNuGetPackage.CreateSimplePackage("Package.2Y", "25.0.0", "net8.0", [(null, [("Package.2Z", "26.0.0")])]),
|
237
|
+
MockNuGetPackage.CreateSimplePackage("Package.2Z", "26.0.0", "net8.0"),
|
238
|
+
];
|
239
|
+
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory(testPackages, temp.DirectoryPath);
|
240
|
+
|
241
|
+
Dependency[] expectedDependencies =
|
242
|
+
[
|
243
|
+
new("Package.1A", "1.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
244
|
+
new("Package.1B", "2.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
245
|
+
new("Package.1C", "3.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
246
|
+
new("Package.1D", "4.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
247
|
+
new("Package.1E", "5.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
248
|
+
new("Package.1F", "6.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
249
|
+
new("Package.1G", "7.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
250
|
+
new("Package.1H", "8.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
251
|
+
new("Package.1I", "9.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
252
|
+
new("Package.1J", "10.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
253
|
+
new("Package.1K", "11.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
254
|
+
new("Package.1L", "12.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
255
|
+
new("Package.1M", "13.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
256
|
+
new("Package.1N", "14.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
257
|
+
new("Package.1O", "15.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
258
|
+
new("Package.1P", "16.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
259
|
+
new("Package.1Q", "17.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
260
|
+
new("Package.1R", "18.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
261
|
+
new("Package.1S", "19.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
262
|
+
new("Package.1T", "20.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
263
|
+
new("Package.1U", "21.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
264
|
+
new("Package.1V", "22.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
265
|
+
new("Package.1W", "23.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
266
|
+
new("Package.1X", "24.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
267
|
+
new("Package.1Y", "25.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
268
|
+
new("Package.1Z", "26.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
269
|
+
new("Package.2A", "1.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
270
|
+
new("Package.2B", "2.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
271
|
+
new("Package.2C", "3.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
272
|
+
new("Package.2D", "4.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
273
|
+
new("Package.2E", "5.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
274
|
+
new("Package.2F", "6.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
275
|
+
new("Package.2G", "7.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
276
|
+
new("Package.2H", "8.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
277
|
+
new("Package.2I", "9.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
278
|
+
new("Package.2J", "10.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
279
|
+
new("Package.2K", "11.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
280
|
+
new("Package.2L", "12.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
281
|
+
new("Package.2M", "13.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
282
|
+
new("Package.2N", "14.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
283
|
+
new("Package.2O", "15.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
284
|
+
new("Package.2P", "16.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
285
|
+
new("Package.2Q", "17.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
286
|
+
new("Package.2R", "18.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
287
|
+
new("Package.2S", "19.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
288
|
+
new("Package.2T", "20.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
289
|
+
new("Package.2U", "21.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
290
|
+
new("Package.2V", "22.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
291
|
+
new("Package.2W", "23.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
292
|
+
new("Package.2X", "24.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
293
|
+
new("Package.2Y", "25.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
294
|
+
new("Package.2Z", "26.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
295
|
+
];
|
254
296
|
var packages = new[]
|
255
297
|
{
|
256
|
-
new Dependency("
|
257
|
-
new Dependency("
|
258
|
-
new Dependency("
|
259
|
-
new Dependency("
|
260
|
-
new Dependency("MSTest.TestAdapter", "2.1.0", DependencyType.Unknown),
|
261
|
-
new Dependency("MSTest.TestFramework", "2.1.0", DependencyType.Unknown),
|
262
|
-
new Dependency("Microsoft.ApplicationInsights", "2.10.0", DependencyType.Unknown),
|
263
|
-
new Dependency("Microsoft.ApplicationInsights.Agent.Intercept", "2.4.0", DependencyType.Unknown),
|
264
|
-
new Dependency("Microsoft.ApplicationInsights.DependencyCollector", "2.10.0", DependencyType.Unknown),
|
265
|
-
new Dependency("Microsoft.ApplicationInsights.PerfCounterCollector", "2.10.0", DependencyType.Unknown),
|
266
|
-
new Dependency("Microsoft.ApplicationInsights.Web", "2.10.0", DependencyType.Unknown),
|
267
|
-
new Dependency("Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel", "2.10.0", DependencyType.Unknown),
|
268
|
-
new Dependency("Microsoft.ApplicationInsights.WindowsServer", "2.10.0", DependencyType.Unknown),
|
269
|
-
new Dependency("Microsoft.Extensions.Http", "7.0.0", DependencyType.Unknown),
|
270
|
-
new Dependency("Newtonsoft.Json", "12.0.1", DependencyType.Unknown)
|
298
|
+
new Dependency("Package.1A", "1.0.0", DependencyType.Unknown),
|
299
|
+
new Dependency("Package.1R", "18.0.0", DependencyType.Unknown),
|
300
|
+
new Dependency("Package.2A", "1.0.0", DependencyType.Unknown),
|
301
|
+
new Dependency("Package.2R", "18.0.0", DependencyType.Unknown),
|
271
302
|
};
|
272
|
-
var actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(temp.DirectoryPath, temp.DirectoryPath, "
|
303
|
+
var actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(temp.DirectoryPath, temp.DirectoryPath, "net8.0", packages);
|
273
304
|
for (int i = 0; i < actualDependencies.Length; i++)
|
274
305
|
{
|
275
306
|
var ad = actualDependencies[i];
|
@@ -284,31 +315,26 @@ public class MSBuildHelperTests : TestBase
|
|
284
315
|
public async Task AllPackageDependencies_DoNotIncludeUpdateOnlyPackages()
|
285
316
|
{
|
286
317
|
using var temp = new TemporaryDirectory();
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
new("
|
298
|
-
new("
|
299
|
-
|
300
|
-
new("System.Memory", "4.5.5", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
301
|
-
new("System.Numerics.Vectors", "4.4.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
302
|
-
new("System.Runtime.CompilerServices.Unsafe", "6.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
303
|
-
new("System.Threading.Tasks.Extensions", "4.5.4", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
304
|
-
new("NETStandard.Library", "2.0.3", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
305
|
-
};
|
318
|
+
MockNuGetPackage[] testPackages =
|
319
|
+
[
|
320
|
+
MockNuGetPackage.CreateSimplePackage("Package.A", "1.0.0", "net8.0"),
|
321
|
+
MockNuGetPackage.CreateSimplePackage("Package.B", "2.0.0", "net8.0"),
|
322
|
+
MockNuGetPackage.CreateSimplePackage("Package.C", "3.0.0", "net8.0"),
|
323
|
+
];
|
324
|
+
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory(testPackages, temp.DirectoryPath);
|
325
|
+
|
326
|
+
Dependency[] expectedDependencies =
|
327
|
+
[
|
328
|
+
new("Package.A", "1.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
329
|
+
new("Package.B", "2.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
330
|
+
];
|
306
331
|
var packages = new[]
|
307
332
|
{
|
308
|
-
new Dependency("
|
309
|
-
new Dependency("
|
333
|
+
new Dependency("Package.A", "1.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
334
|
+
new Dependency("Package.B", "2.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
335
|
+
new Dependency("Package.C", "3.0.0", DependencyType.Unknown, IsUpdate: true)
|
310
336
|
};
|
311
|
-
var actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(temp.DirectoryPath, temp.DirectoryPath, "
|
337
|
+
var actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(temp.DirectoryPath, temp.DirectoryPath, "net8.0", packages);
|
312
338
|
AssertEx.Equal(expectedDependencies, actualDependencies);
|
313
339
|
}
|
314
340
|
|
@@ -344,8 +370,8 @@ public class MSBuildHelperTests : TestBase
|
|
344
370
|
var actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(
|
345
371
|
temp.DirectoryPath,
|
346
372
|
temp.DirectoryPath,
|
347
|
-
"
|
348
|
-
[new Dependency("
|
373
|
+
"net8.0",
|
374
|
+
[new Dependency("Some.Package", "4.5.11", DependencyType.Unknown)]
|
349
375
|
);
|
350
376
|
}
|
351
377
|
finally
|
@@ -356,72 +382,6 @@ public class MSBuildHelperTests : TestBase
|
|
356
382
|
}
|
357
383
|
}
|
358
384
|
|
359
|
-
[Fact]
|
360
|
-
public async Task GetAllPackageDependencies_LocalNuGetRepos_AreCopiedToTempProject()
|
361
|
-
{
|
362
|
-
// If we end up using this EnvVar pattern again I think it'd be worth it to abstract it out into an IDisposable.
|
363
|
-
var nugetPackagesDirectory = Environment.GetEnvironmentVariable("NUGET_PACKAGES");
|
364
|
-
var nugetHttpCacheDirectory = Environment.GetEnvironmentVariable("NUGET_HTTP_CACHE_PATH");
|
365
|
-
var logger = new Logger(verbose: true);
|
366
|
-
try
|
367
|
-
{
|
368
|
-
// First create a fake local nuget repository
|
369
|
-
using var restoreDir = new TemporaryDirectory();
|
370
|
-
|
371
|
-
var restoreNuGetPackagesDirectory = Path.Combine(restoreDir.DirectoryPath, ".nuget", "packages");
|
372
|
-
Environment.SetEnvironmentVariable("NUGET_PACKAGES", restoreNuGetPackagesDirectory);
|
373
|
-
var restoreNuGetHttpCacheDirectory = Path.Combine(restoreDir.DirectoryPath, ".nuget", "v3-cache");
|
374
|
-
Environment.SetEnvironmentVariable("NUGET_HTTP_CACHE_PATH", restoreNuGetHttpCacheDirectory);
|
375
|
-
|
376
|
-
using var temp = new TemporaryDirectory();
|
377
|
-
using (var restoreProjectTemp = new TemporaryDirectory())
|
378
|
-
{
|
379
|
-
// dotnet restore .csproj with things we want
|
380
|
-
await MSBuildHelper.DependenciesAreCoherentAsync(restoreProjectTemp.DirectoryPath, restoreProjectTemp.DirectoryPath, "netstandard2.0",
|
381
|
-
[new Dependency("Newtonsoft.Json", "4.5.11", DependencyType.Unknown)], logger);
|
382
|
-
Assert.True(Directory.Exists(restoreNuGetPackagesDirectory), "packages directory didn't exist");
|
383
|
-
PathHelper.CopyDirectory(restoreNuGetPackagesDirectory, Path.Combine(temp.DirectoryPath, "local_repo"));
|
384
|
-
}
|
385
|
-
|
386
|
-
// It is important to have empty NuGet caches for this test, so override them with temp directories.
|
387
|
-
var tempNuGetPackagesDirectory = Path.Combine(temp.DirectoryPath, ".nuget", "packages");
|
388
|
-
Environment.SetEnvironmentVariable("NUGET_PACKAGES", tempNuGetPackagesDirectory);
|
389
|
-
var tempNuGetHttpCacheDirectory = Path.Combine(temp.DirectoryPath, ".nuget", "v3-cache");
|
390
|
-
Environment.SetEnvironmentVariable("NUGET_HTTP_CACHE_PATH", tempNuGetHttpCacheDirectory);
|
391
|
-
|
392
|
-
// Write the NuGet.config.
|
393
|
-
await File.WriteAllTextAsync(
|
394
|
-
Path.Combine(temp.DirectoryPath, "NuGet.Config"), """
|
395
|
-
<?xml version="1.0" encoding="utf-8"?>
|
396
|
-
<configuration>
|
397
|
-
<packageSources>
|
398
|
-
<clear />
|
399
|
-
<add key="local-repo" value="local_repo" />
|
400
|
-
</packageSources>
|
401
|
-
</configuration>
|
402
|
-
""");
|
403
|
-
var expectedDependencies = new Dependency[]
|
404
|
-
{
|
405
|
-
new("Newtonsoft.Json", "4.5.11", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"]),
|
406
|
-
new("NETStandard.Library", "2.0.3", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
407
|
-
};
|
408
|
-
var actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(
|
409
|
-
temp.DirectoryPath,
|
410
|
-
temp.DirectoryPath,
|
411
|
-
"netstandard2.0",
|
412
|
-
[new Dependency("Newtonsoft.Json", "4.5.11", DependencyType.Unknown)]
|
413
|
-
);
|
414
|
-
Assert.False(Directory.Exists(tempNuGetHttpCacheDirectory), "The .nuget/.v3-cache directory was created, meaning http was used.");
|
415
|
-
AssertEx.Equal(expectedDependencies, actualDependencies);
|
416
|
-
}
|
417
|
-
finally
|
418
|
-
{
|
419
|
-
// Restore the NuGet caches.
|
420
|
-
Environment.SetEnvironmentVariable("NUGET_PACKAGES", nugetPackagesDirectory);
|
421
|
-
Environment.SetEnvironmentVariable("NUGET_HTTP_CACHE_PATH", nugetHttpCacheDirectory);
|
422
|
-
}
|
423
|
-
}
|
424
|
-
|
425
385
|
[Fact]
|
426
386
|
public async Task AllPackageDependenciesCanBeFoundWithNuGetConfig()
|
427
387
|
{
|
@@ -438,47 +398,38 @@ public class MSBuildHelperTests : TestBase
|
|
438
398
|
var tempNuGetHttpCacheDirectory = Path.Combine(temp.DirectoryPath, ".nuget", "v3-cache");
|
439
399
|
Environment.SetEnvironmentVariable("NUGET_HTTP_CACHE_PATH", tempNuGetHttpCacheDirectory);
|
440
400
|
|
441
|
-
//
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
<?xml version="1.0" encoding="utf-8"?>
|
401
|
+
// create two local package sources with different packages available in each
|
402
|
+
string localSource1 = Path.Combine(temp.DirectoryPath, "localSource1");
|
403
|
+
Directory.CreateDirectory(localSource1);
|
404
|
+
string localSource2 = Path.Combine(temp.DirectoryPath, "localSource2");
|
405
|
+
Directory.CreateDirectory(localSource2);
|
406
|
+
|
407
|
+
// `Package.A` will only live in `localSource1` and will have a dependency on `Package.B` which is only
|
408
|
+
// available in `localSource2`
|
409
|
+
MockNuGetPackage.CreateSimplePackage("Package.A", "1.0.0", "net8.0", [(null, [("Package.B", "2.0.0")])]).WriteToDirectory(localSource1);
|
410
|
+
MockNuGetPackage.CreateSimplePackage("Package.B", "2.0.0", "net8.0").WriteToDirectory(localSource2);
|
411
|
+
await File.WriteAllTextAsync(Path.Join(temp.DirectoryPath, "NuGet.Config"), """
|
453
412
|
<configuration>
|
454
413
|
<packageSources>
|
455
|
-
<
|
456
|
-
<add key="
|
457
|
-
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
|
414
|
+
<add key="localSource1" value="./localSource1" />
|
415
|
+
<add key="localSource2" value="./localSource2" />
|
458
416
|
</packageSources>
|
459
417
|
</configuration>
|
460
418
|
""");
|
461
419
|
|
462
|
-
|
463
|
-
|
464
|
-
new("
|
465
|
-
new("
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
new("System.Reflection.Metadata", "7.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
470
|
-
new("System.Runtime.CompilerServices.Unsafe", "6.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
471
|
-
new("System.Text.Encoding.CodePages", "7.0.0", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
472
|
-
new("System.Threading.Tasks.Extensions", "4.5.4", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
473
|
-
new("Microsoft.CodeAnalysis.Analyzers", "3.3.4", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
474
|
-
new("NETStandard.Library", "2.0.3", DependencyType.Unknown, TargetFrameworks: ["netstandard2.0"], IsTransitive: true),
|
475
|
-
};
|
476
|
-
var actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(
|
420
|
+
Dependency[] expectedDependencies =
|
421
|
+
[
|
422
|
+
new("Package.A", "1.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"]),
|
423
|
+
new("Package.B", "2.0.0", DependencyType.Unknown, TargetFrameworks: ["net8.0"], IsTransitive: true),
|
424
|
+
];
|
425
|
+
|
426
|
+
Dependency[] actualDependencies = await MSBuildHelper.GetAllPackageDependenciesAsync(
|
477
427
|
temp.DirectoryPath,
|
478
428
|
temp.DirectoryPath,
|
479
|
-
"
|
480
|
-
[new Dependency("
|
429
|
+
"net8.0",
|
430
|
+
[new Dependency("Package.A", "1.0.0", DependencyType.Unknown)]
|
481
431
|
);
|
432
|
+
|
482
433
|
AssertEx.Equal(expectedDependencies, actualDependencies);
|
483
434
|
}
|
484
435
|
finally
|
@@ -492,35 +443,48 @@ public class MSBuildHelperTests : TestBase
|
|
492
443
|
[Fact]
|
493
444
|
public async Task DependencyConflictsCanBeResolved()
|
494
445
|
{
|
495
|
-
// the package `SpecFlow` was already updated from 3.3.30 to 3.4.3, but this causes a conflict with
|
496
|
-
// `SpecFlow.Tools.MsBuild.Generation` that needs to be resolved
|
497
446
|
var repoRoot = Directory.CreateTempSubdirectory($"test_{nameof(DependencyConflictsCanBeResolved)}_");
|
447
|
+
MockNuGetPackage[] testPackages =
|
448
|
+
[
|
449
|
+
// some base packages
|
450
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.0.0", "net8.0"),
|
451
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.1.0", "net8.0"),
|
452
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "1.2.0", "net8.0"),
|
453
|
+
// some packages that are hard-locked to specific versions of the previous package
|
454
|
+
MockNuGetPackage.CreateSimplePackage("Some.Other.Package", "1.0.0", "net8.0", [(null, [("Some.Package", "[1.0.0]")])]),
|
455
|
+
MockNuGetPackage.CreateSimplePackage("Some.Other.Package", "1.1.0", "net8.0", [(null, [("Some.Package", "[1.1.0]")])]),
|
456
|
+
MockNuGetPackage.CreateSimplePackage("Some.Other.Package", "1.2.0", "net8.0", [(null, [("Some.Package", "[1.2.0]")])]),
|
457
|
+
];
|
458
|
+
await UpdateWorkerTestBase.MockNuGetPackagesInDirectory(testPackages, repoRoot.FullName);
|
459
|
+
|
460
|
+
// the package `Some.Package` was already updated from 1.0.0 to 1.2.0, but this causes a conflict with
|
461
|
+
// `Some.Other.Package` that needs to be resolved
|
498
462
|
try
|
499
463
|
{
|
500
464
|
var projectPath = Path.Join(repoRoot.FullName, "project.csproj");
|
501
465
|
await File.WriteAllTextAsync(projectPath, """
|
502
466
|
<Project Sdk="Microsoft.NET.Sdk">
|
503
467
|
<PropertyGroup>
|
504
|
-
<TargetFramework>
|
468
|
+
<TargetFramework>net8.0</TargetFramework>
|
505
469
|
</PropertyGroup>
|
506
470
|
<ItemGroup>
|
507
|
-
<PackageReference Include="
|
508
|
-
<PackageReference Include="
|
471
|
+
<PackageReference Include="Some.Package" Version="1.2.0" />
|
472
|
+
<PackageReference Include="Some.Other.Package" Version="1.0.0" />
|
509
473
|
</ItemGroup>
|
510
474
|
</Project>
|
511
475
|
""");
|
512
476
|
var dependencies = new[]
|
513
477
|
{
|
514
|
-
new Dependency("
|
515
|
-
new Dependency("
|
478
|
+
new Dependency("Some.Package", "1.2.0", DependencyType.PackageReference),
|
479
|
+
new Dependency("Some.Other.Package", "1.0.0", DependencyType.PackageReference),
|
516
480
|
};
|
517
|
-
var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "
|
481
|
+
var resolvedDependencies = await MSBuildHelper.ResolveDependencyConflicts(repoRoot.FullName, projectPath, "net8.0", dependencies, new Logger(true));
|
518
482
|
Assert.NotNull(resolvedDependencies);
|
519
483
|
Assert.Equal(2, resolvedDependencies.Length);
|
520
|
-
Assert.Equal("
|
521
|
-
Assert.Equal("
|
522
|
-
Assert.Equal("
|
523
|
-
Assert.Equal("
|
484
|
+
Assert.Equal("Some.Package", resolvedDependencies[0].Name);
|
485
|
+
Assert.Equal("1.2.0", resolvedDependencies[0].Version);
|
486
|
+
Assert.Equal("Some.Other.Package", resolvedDependencies[1].Name);
|
487
|
+
Assert.Equal("1.2.0", resolvedDependencies[1].Version);
|
524
488
|
}
|
525
489
|
finally
|
526
490
|
{
|
@@ -539,7 +503,7 @@ public class MSBuildHelperTests : TestBase
|
|
539
503
|
("project.csproj", """
|
540
504
|
<Project Sdk="Microsoft.NET.Sdk">
|
541
505
|
<ItemGroup>
|
542
|
-
<PackageReference Include="
|
506
|
+
<PackageReference Include="Some.Package" Version="12.0.1" />
|
543
507
|
</ItemGroup>
|
544
508
|
</Project>
|
545
509
|
""")
|
@@ -548,10 +512,14 @@ public class MSBuildHelperTests : TestBase
|
|
548
512
|
new Dependency[]
|
549
513
|
{
|
550
514
|
new(
|
551
|
-
"
|
515
|
+
"Some.Package",
|
552
516
|
"12.0.1",
|
553
517
|
DependencyType.PackageReference,
|
554
518
|
EvaluationResult: new(EvaluationResultType.Success, "12.0.1", "12.0.1", null, null))
|
519
|
+
},
|
520
|
+
new MockNuGetPackage[]
|
521
|
+
{
|
522
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "12.0.1", "net8.0")
|
555
523
|
}
|
556
524
|
];
|
557
525
|
|
@@ -564,7 +532,7 @@ public class MSBuildHelperTests : TestBase
|
|
564
532
|
("project.csproj", """
|
565
533
|
<Project Sdk="Microsoft.NET.Sdk">
|
566
534
|
<ItemGroup>
|
567
|
-
<PackageReference Include="
|
535
|
+
<PackageReference Include="Some.Package">
|
568
536
|
<Version>12.0.1</Version>
|
569
537
|
</PackageReference>
|
570
538
|
</ItemGroup>
|
@@ -575,10 +543,14 @@ public class MSBuildHelperTests : TestBase
|
|
575
543
|
new Dependency[]
|
576
544
|
{
|
577
545
|
new(
|
578
|
-
"
|
546
|
+
"Some.Package",
|
579
547
|
"12.0.1",
|
580
548
|
DependencyType.PackageReference,
|
581
549
|
EvaluationResult: new(EvaluationResultType.Success, "12.0.1", "12.0.1", null, null))
|
550
|
+
},
|
551
|
+
new MockNuGetPackage[]
|
552
|
+
{
|
553
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "12.0.1", "net8.0")
|
582
554
|
}
|
583
555
|
];
|
584
556
|
|
@@ -591,10 +563,10 @@ public class MSBuildHelperTests : TestBase
|
|
591
563
|
("project.csproj", """
|
592
564
|
<Project Sdk="Microsoft.NET.Sdk">
|
593
565
|
<PropertyGroup>
|
594
|
-
<
|
566
|
+
<SomePackageVersion>12.0.1</SomePackageVersion>
|
595
567
|
</PropertyGroup>
|
596
568
|
<ItemGroup>
|
597
|
-
<PackageReference Include="
|
569
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
598
570
|
</ItemGroup>
|
599
571
|
</Project>
|
600
572
|
""")
|
@@ -603,10 +575,14 @@ public class MSBuildHelperTests : TestBase
|
|
603
575
|
new Dependency[]
|
604
576
|
{
|
605
577
|
new(
|
606
|
-
"
|
578
|
+
"Some.Package",
|
607
579
|
"12.0.1",
|
608
580
|
DependencyType.PackageReference,
|
609
|
-
new(EvaluationResultType.Success, "$(
|
581
|
+
new(EvaluationResultType.Success, "$(SomePackageVersion)", "12.0.1", "SomePackageVersion", null))
|
582
|
+
},
|
583
|
+
new MockNuGetPackage[]
|
584
|
+
{
|
585
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "12.0.1", "net8.0")
|
610
586
|
}
|
611
587
|
];
|
612
588
|
|
@@ -620,11 +596,11 @@ public class MSBuildHelperTests : TestBase
|
|
620
596
|
<Project Sdk="Microsoft.NET.Sdk">
|
621
597
|
<PropertyGroup>
|
622
598
|
<TargetFramework>netstandard2.0</TargetFramework>
|
623
|
-
<
|
624
|
-
<
|
599
|
+
<SomePackageVersion>12.0.1</SomePackageVersion>
|
600
|
+
<SomePackageVersion Condition="$(PropertyThatDoesNotExist) == 'true'">13.0.1</SomePackageVersion>
|
625
601
|
</PropertyGroup>
|
626
602
|
<ItemGroup>
|
627
|
-
<PackageReference Include="
|
603
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
628
604
|
</ItemGroup>
|
629
605
|
</Project>
|
630
606
|
""")
|
@@ -633,10 +609,14 @@ public class MSBuildHelperTests : TestBase
|
|
633
609
|
new Dependency[]
|
634
610
|
{
|
635
611
|
new(
|
636
|
-
"
|
612
|
+
"Some.Package",
|
637
613
|
"12.0.1",
|
638
614
|
DependencyType.PackageReference,
|
639
|
-
new(EvaluationResultType.Success, "$(
|
615
|
+
new(EvaluationResultType.Success, "$(SomePackageVersion)", "12.0.1", "SomePackageVersion", null))
|
616
|
+
},
|
617
|
+
new MockNuGetPackage[]
|
618
|
+
{
|
619
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "12.0.1", "net8.0")
|
640
620
|
}
|
641
621
|
];
|
642
622
|
|
@@ -650,11 +630,11 @@ public class MSBuildHelperTests : TestBase
|
|
650
630
|
<Project Sdk="Microsoft.NET.Sdk">
|
651
631
|
<PropertyGroup>
|
652
632
|
<TargetFramework>netstandard2.0</TargetFramework>
|
653
|
-
<
|
654
|
-
<
|
633
|
+
<SomePackageVersion>12.0.1</SomePackageVersion>
|
634
|
+
<SomePackageVersion Condition="'$(PropertyThatDoesNotExist)' == 'true'">13.0.1</SomePackageVersion>
|
655
635
|
</PropertyGroup>
|
656
636
|
<ItemGroup>
|
657
|
-
<PackageReference Include="
|
637
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
658
638
|
</ItemGroup>
|
659
639
|
</Project>
|
660
640
|
""")
|
@@ -663,10 +643,14 @@ public class MSBuildHelperTests : TestBase
|
|
663
643
|
new Dependency[]
|
664
644
|
{
|
665
645
|
new(
|
666
|
-
"
|
646
|
+
"Some.Package",
|
667
647
|
"12.0.1",
|
668
648
|
DependencyType.PackageReference,
|
669
|
-
new(EvaluationResultType.Success, "$(
|
649
|
+
new(EvaluationResultType.Success, "$(SomePackageVersion)", "12.0.1", "SomePackageVersion", null))
|
650
|
+
},
|
651
|
+
new MockNuGetPackage[]
|
652
|
+
{
|
653
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "12.0.1", "net8.0")
|
670
654
|
}
|
671
655
|
};
|
672
656
|
|
@@ -680,11 +664,11 @@ public class MSBuildHelperTests : TestBase
|
|
680
664
|
<Project Sdk="Microsoft.NET.Sdk">
|
681
665
|
<PropertyGroup>
|
682
666
|
<TargetFramework>netstandard2.0</TargetFramework>
|
683
|
-
<
|
684
|
-
<
|
667
|
+
<SomePackageVersion Condition="$(SomePackageVersion) == ''">12.0.1</SomePackageVersion>
|
668
|
+
<SomePackageVersion Condition="$(PropertyThatDoesNotExist) == 'true'">13.0.1</SomePackageVersion>
|
685
669
|
</PropertyGroup>
|
686
670
|
<ItemGroup>
|
687
|
-
<PackageReference Include="
|
671
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
688
672
|
</ItemGroup>
|
689
673
|
</Project>
|
690
674
|
""")
|
@@ -693,10 +677,14 @@ public class MSBuildHelperTests : TestBase
|
|
693
677
|
new Dependency[]
|
694
678
|
{
|
695
679
|
new(
|
696
|
-
"
|
680
|
+
"Some.Package",
|
697
681
|
"12.0.1",
|
698
682
|
DependencyType.PackageReference,
|
699
|
-
new(EvaluationResultType.Success, "$(
|
683
|
+
new(EvaluationResultType.Success, "$(SomePackageVersion)", "12.0.1", "SomePackageVersion", null))
|
684
|
+
},
|
685
|
+
new MockNuGetPackage[]
|
686
|
+
{
|
687
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "12.0.1", "net8.0")
|
700
688
|
}
|
701
689
|
];
|
702
690
|
|
@@ -710,11 +698,11 @@ public class MSBuildHelperTests : TestBase
|
|
710
698
|
<Project Sdk="Microsoft.NET.Sdk">
|
711
699
|
<PropertyGroup>
|
712
700
|
<TargetFramework>netstandard2.0</TargetFramework>
|
713
|
-
<
|
714
|
-
<
|
701
|
+
<SomePackageVersion Condition="'$(SomePackageVersion)' == ''">12.0.1</SomePackageVersion>
|
702
|
+
<SomePackageVersion Condition="'$(PropertyThatDoesNotExist)' == 'true'">13.0.1</SomePackageVersion>
|
715
703
|
</PropertyGroup>
|
716
704
|
<ItemGroup>
|
717
|
-
<PackageReference Include="
|
705
|
+
<PackageReference Include="Some.Package" Version="$(SomePackageVersion)" />
|
718
706
|
</ItemGroup>
|
719
707
|
</Project>
|
720
708
|
""")
|
@@ -723,10 +711,14 @@ public class MSBuildHelperTests : TestBase
|
|
723
711
|
new Dependency[]
|
724
712
|
{
|
725
713
|
new(
|
726
|
-
"
|
714
|
+
"Some.Package",
|
727
715
|
"12.0.1",
|
728
716
|
DependencyType.PackageReference,
|
729
|
-
new(EvaluationResultType.Success, "$(
|
717
|
+
new(EvaluationResultType.Success, "$(SomePackageVersion)", "12.0.1", "SomePackageVersion", null))
|
718
|
+
},
|
719
|
+
new MockNuGetPackage[]
|
720
|
+
{
|
721
|
+
MockNuGetPackage.CreateSimplePackage("Some.Package", "12.0.1", "net8.0")
|
730
722
|
}
|
731
723
|
};
|
732
724
|
|
@@ -739,18 +731,18 @@ public class MSBuildHelperTests : TestBase
|
|
739
731
|
("Packages.props", """
|
740
732
|
<Project>
|
741
733
|
<ItemGroup>
|
742
|
-
<PackageReference Update="
|
743
|
-
<PackageReference Update="
|
734
|
+
<PackageReference Update="Package.A" Version="1.6.0" />
|
735
|
+
<PackageReference Update="Package.B" Version="5.1.4" />
|
744
736
|
</ItemGroup>
|
745
737
|
</Project>
|
746
738
|
"""),
|
747
739
|
("project.csproj", """
|
748
740
|
<Project Sdk="Microsoft.NET.Sdk">
|
749
741
|
<PropertyGroup>
|
750
|
-
<TargetFramework>
|
742
|
+
<TargetFramework>net8.0</TargetFramework>
|
751
743
|
</PropertyGroup>
|
752
744
|
<ItemGroup>
|
753
|
-
<PackageReference Include="
|
745
|
+
<PackageReference Include="Package.A" Version="1.6.1" />
|
754
746
|
</ItemGroup>
|
755
747
|
</Project>
|
756
748
|
""")
|
@@ -759,16 +751,22 @@ public class MSBuildHelperTests : TestBase
|
|
759
751
|
new Dependency[]
|
760
752
|
{
|
761
753
|
new(
|
762
|
-
"
|
754
|
+
"Package.A",
|
763
755
|
"1.6.0",
|
764
756
|
DependencyType.PackageReference,
|
765
757
|
EvaluationResult: new(EvaluationResultType.Success, "1.6.0", "1.6.0", null, null)),
|
766
758
|
new(
|
767
|
-
"
|
759
|
+
"Package.B",
|
768
760
|
"5.1.4",
|
769
761
|
DependencyType.PackageReference,
|
770
762
|
EvaluationResult: new(EvaluationResultType.Success, "5.1.4", "5.1.4", null, null),
|
771
763
|
IsUpdate: true),
|
764
|
+
},
|
765
|
+
new MockNuGetPackage[]
|
766
|
+
{
|
767
|
+
MockNuGetPackage.CreateSimplePackage("Package.A", "1.6.0", "net8.0"),
|
768
|
+
MockNuGetPackage.CreateSimplePackage("Package.A", "1.6.1", "net8.0"),
|
769
|
+
MockNuGetPackage.CreateSimplePackage("Package.B", "5.1.4", "net8.0"),
|
772
770
|
}
|
773
771
|
];
|
774
772
|
|
@@ -781,18 +779,18 @@ public class MSBuildHelperTests : TestBase
|
|
781
779
|
("project.csproj", """
|
782
780
|
<Project Sdk="Microsoft.NET.Sdk">
|
783
781
|
<PropertyGroup>
|
784
|
-
<TargetFramework>
|
782
|
+
<TargetFramework>net8.0</TargetFramework>
|
785
783
|
</PropertyGroup>
|
786
784
|
<ItemGroup>
|
787
|
-
<PackageReference Include="
|
785
|
+
<PackageReference Include="Package.A" />
|
788
786
|
</ItemGroup>
|
789
787
|
</Project>
|
790
788
|
"""),
|
791
789
|
("Packages.props", """
|
792
790
|
<Project>
|
793
791
|
<ItemGroup>
|
794
|
-
<PackageReference Update="
|
795
|
-
<PackageReference Update="
|
792
|
+
<PackageReference Update="Package.A" Version="1.6.0" />
|
793
|
+
<PackageReference Update="Package.B" Version="5.1.4" />
|
796
794
|
</ItemGroup>
|
797
795
|
</Project>
|
798
796
|
""")
|
@@ -801,16 +799,21 @@ public class MSBuildHelperTests : TestBase
|
|
801
799
|
new Dependency[]
|
802
800
|
{
|
803
801
|
new(
|
804
|
-
"
|
802
|
+
"Package.A",
|
805
803
|
"1.6.0",
|
806
804
|
DependencyType.PackageReference,
|
807
805
|
EvaluationResult: new(EvaluationResultType.Success, "1.6.0", "1.6.0", null, null)),
|
808
806
|
new(
|
809
|
-
"
|
807
|
+
"Package.B",
|
810
808
|
"5.1.4",
|
811
809
|
DependencyType.PackageReference,
|
812
810
|
EvaluationResult: new(EvaluationResultType.Success, "5.1.4", "5.1.4", null, null),
|
813
811
|
IsUpdate: true),
|
812
|
+
},
|
813
|
+
new MockNuGetPackage[]
|
814
|
+
{
|
815
|
+
MockNuGetPackage.CreateSimplePackage("Package.A", "1.6.0", "net8.0"),
|
816
|
+
MockNuGetPackage.CreateSimplePackage("Package.B", "5.1.4", "net8.0"),
|
814
817
|
}
|
815
818
|
];
|
816
819
|
}
|