dependabot-nuget 0.258.0 → 0.259.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
}
|