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.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/lib/NuGetUpdater/Directory.Packages.props +2 -0
  3. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/DiscoverCommand.cs +2 -2
  4. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Discover.cs +255 -191
  5. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +63 -35
  6. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Discover/DiscoveryWorker.cs +107 -14
  7. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +9 -5
  8. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathHelper.cs +18 -0
  9. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTestBase.cs +6 -1
  10. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.DotNetToolsJson.cs +6 -2
  11. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.GlobalJson.cs +6 -2
  12. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.PackagesConfig.cs +11 -21
  13. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Proj.cs +95 -0
  14. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.Project.cs +204 -62
  15. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Discover/DiscoveryWorkerTests.cs +64 -45
  16. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/MockNuGetPackage.cs +419 -0
  17. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/NuGetUpdater.Core.Test.csproj +1 -0
  18. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TemporaryDirectory.cs +7 -2
  19. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs +77 -19
  20. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DirsProj.cs +120 -91
  21. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DotNetTools.cs +132 -97
  22. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.GlobalJson.cs +93 -75
  23. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Mixed.cs +45 -42
  24. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs +1089 -956
  25. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +1624 -1291
  26. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +296 -293
  27. data/helpers/lib/NuGetUpdater/global.json +6 -0
  28. data/lib/dependabot/nuget/file_parser.rb +4 -5
  29. data/lib/dependabot/nuget/file_updater.rb +1 -1
  30. data/lib/dependabot/nuget/update_checker/dependency_finder.rb +7 -2
  31. data/lib/dependabot/nuget/update_checker/property_updater.rb +1 -0
  32. data/lib/dependabot/nuget/update_checker/version_finder.rb +2 -3
  33. data/lib/dependabot/nuget/update_checker.rb +1 -0
  34. metadata +8 -5
@@ -1,7 +1,3 @@
1
- using System.IO;
2
- using System.Linq;
3
- using System.Threading.Tasks;
4
-
5
1
  using Xunit;
6
2
 
7
3
  namespace NuGetUpdater.Core.Test.Update;
@@ -13,94 +9,111 @@ public partial class UpdateWorkerTests
13
9
  [Fact]
14
10
  public async Task UpdateSingleDependencyInDirsProj()
15
11
  {
16
- await TestUpdateForDirsProj("Newtonsoft.Json", "9.0.1", "13.0.1",
12
+ await TestUpdateForDirsProj("Some.Package", "9.0.1", "13.0.1",
13
+ packages:
14
+ [
15
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "9.0.1", "net8.0"),
16
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "13.0.1", "net8.0"),
17
+ ],
17
18
  // initial
18
19
  projectContents: """
19
- <Project Sdk="Microsoft.Build.NoTargets">
20
+ <Project Sdk="Microsoft.Build.NoTargets">
20
21
 
21
- <ItemGroup>
22
- <ProjectReference Include="src/test-project.csproj" />
23
- </ItemGroup>
22
+ <ItemGroup>
23
+ <ProjectReference Include="src/test-project.csproj" />
24
+ </ItemGroup>
24
25
 
25
- </Project>
26
- """,
26
+ </Project>
27
+ """,
27
28
  additionalFiles:
28
29
  [
29
30
  ("src/test-project.csproj",
30
31
  """
31
32
  <Project Sdk="Microsoft.NET.Sdk">
32
33
  <PropertyGroup>
33
- <TargetFramework>netstandard2.0</TargetFramework>
34
+ <TargetFramework>net8.0</TargetFramework>
34
35
  </PropertyGroup>
35
36
 
36
37
  <ItemGroup>
37
- <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
38
+ <PackageReference Include="Some.Package" Version="9.0.1" />
38
39
  </ItemGroup>
39
40
  </Project>
40
41
  """)
41
42
  ],
42
43
  // expected
43
44
  expectedProjectContents: """
44
- <Project Sdk="Microsoft.Build.NoTargets">
45
+ <Project Sdk="Microsoft.Build.NoTargets">
45
46
 
46
- <ItemGroup>
47
- <ProjectReference Include="src/test-project.csproj" />
48
- </ItemGroup>
47
+ <ItemGroup>
48
+ <ProjectReference Include="src/test-project.csproj" />
49
+ </ItemGroup>
49
50
 
50
- </Project>
51
- """,
51
+ </Project>
52
+ """,
52
53
  additionalFilesExpected:
53
54
  [
54
55
  ("src/test-project.csproj",
55
56
  """
56
57
  <Project Sdk="Microsoft.NET.Sdk">
57
58
  <PropertyGroup>
58
- <TargetFramework>netstandard2.0</TargetFramework>
59
+ <TargetFramework>net8.0</TargetFramework>
59
60
  </PropertyGroup>
60
61
 
61
62
  <ItemGroup>
62
- <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
63
+ <PackageReference Include="Some.Package" Version="13.0.1" />
63
64
  </ItemGroup>
64
65
  </Project>
65
66
  """)
66
- ]);
67
+ ]
68
+ );
67
69
  }
68
70
 
69
71
  [Fact]
70
72
  public async Task Update_MissingFileDoesNotThrow()
71
73
  {
72
- await TestUpdateForDirsProj("Newtonsoft.Json", "9.0.1", "13.0.1",
74
+ await TestUpdateForDirsProj("Some.Package", "9.0.1", "13.0.1",
75
+ packages:
76
+ [
77
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "9.0.1", "net8.0"),
78
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "13.0.1", "net8.0"),
79
+ ],
73
80
  projectContents: """
74
- <Project Sdk="Microsoft.Build.Traversal">
75
- <ItemGroup>
76
- <ProjectReference Include="private\dirs.proj" />
77
- </ItemGroup>
78
- </Project>
79
- """,
81
+ <Project Sdk="Microsoft.Build.Traversal">
82
+ <ItemGroup>
83
+ <ProjectReference Include="private\dirs.proj" />
84
+ </ItemGroup>
85
+ </Project>
86
+ """,
80
87
  expectedProjectContents: """
81
- <Project Sdk="Microsoft.Build.Traversal">
82
- <ItemGroup>
83
- <ProjectReference Include="private\dirs.proj" />
84
- </ItemGroup>
85
- </Project>
86
- """,
87
- additionalFiles: []);
88
+ <Project Sdk="Microsoft.Build.Traversal">
89
+ <ItemGroup>
90
+ <ProjectReference Include="private\dirs.proj" />
91
+ </ItemGroup>
92
+ </Project>
93
+ """,
94
+ additionalFiles: []
95
+ );
88
96
  }
89
97
 
90
98
  [Fact]
91
99
  public async Task UpdateSingleDependencyInNestedDirsProj()
92
100
  {
93
- await TestUpdateForDirsProj("Newtonsoft.Json", "9.0.1", "13.0.1",
101
+ await TestUpdateForDirsProj("Some.Package", "9.0.1", "13.0.1",
102
+ packages:
103
+ [
104
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "9.0.1", "net8.0"),
105
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "13.0.1", "net8.0"),
106
+ ],
94
107
  // initial
95
108
  projectContents: """
96
- <Project Sdk="Microsoft.Build.NoTargets">
109
+ <Project Sdk="Microsoft.Build.NoTargets">
97
110
 
98
- <ItemGroup>
99
- <ProjectReference Include="src/dirs.proj" />
100
- </ItemGroup>
111
+ <ItemGroup>
112
+ <ProjectReference Include="src/dirs.proj" />
113
+ </ItemGroup>
101
114
 
102
- </Project>
103
- """,
115
+ </Project>
116
+ """,
104
117
  additionalFiles:
105
118
  [
106
119
  ("src/dirs.proj",
@@ -117,25 +130,25 @@ public partial class UpdateWorkerTests
117
130
  """
118
131
  <Project Sdk="Microsoft.NET.Sdk">
119
132
  <PropertyGroup>
120
- <TargetFramework>netstandard2.0</TargetFramework>
133
+ <TargetFramework>net8.0</TargetFramework>
121
134
  </PropertyGroup>
122
135
 
123
136
  <ItemGroup>
124
- <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
137
+ <PackageReference Include="Some.Package" Version="9.0.1" />
125
138
  </ItemGroup>
126
139
  </Project>
127
140
  """)
128
141
  ],
129
142
  // expected
130
143
  expectedProjectContents: """
131
- <Project Sdk="Microsoft.Build.NoTargets">
144
+ <Project Sdk="Microsoft.Build.NoTargets">
132
145
 
133
- <ItemGroup>
134
- <ProjectReference Include="src/dirs.proj" />
135
- </ItemGroup>
146
+ <ItemGroup>
147
+ <ProjectReference Include="src/dirs.proj" />
148
+ </ItemGroup>
136
149
 
137
- </Project>
138
- """,
150
+ </Project>
151
+ """,
139
152
  additionalFilesExpected:
140
153
  [
141
154
  ("src/dirs.proj",
@@ -152,31 +165,37 @@ public partial class UpdateWorkerTests
152
165
  """
153
166
  <Project Sdk="Microsoft.NET.Sdk">
154
167
  <PropertyGroup>
155
- <TargetFramework>netstandard2.0</TargetFramework>
168
+ <TargetFramework>net8.0</TargetFramework>
156
169
  </PropertyGroup>
157
170
 
158
171
  <ItemGroup>
159
- <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
172
+ <PackageReference Include="Some.Package" Version="13.0.1" />
160
173
  </ItemGroup>
161
174
  </Project>
162
175
  """)
163
- ]);
176
+ ]
177
+ );
164
178
  }
165
179
 
166
180
  [Fact]
167
181
  public async Task UpdateSingleDependencyInNestedDirsProjUsingWildcard()
168
182
  {
169
- await TestUpdateForDirsProj("Newtonsoft.Json", "9.0.1", "13.0.1",
183
+ await TestUpdateForDirsProj("Some.Package", "9.0.1", "13.0.1",
184
+ packages:
185
+ [
186
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "9.0.1", "net8.0"),
187
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "13.0.1", "net8.0"),
188
+ ],
170
189
  // initial
171
190
  projectContents: """
172
- <Project Sdk="Microsoft.Build.NoTargets">
191
+ <Project Sdk="Microsoft.Build.NoTargets">
173
192
 
174
- <ItemGroup>
175
- <ProjectReference Include="src/*.proj" />
176
- </ItemGroup>
193
+ <ItemGroup>
194
+ <ProjectReference Include="src/*.proj" />
195
+ </ItemGroup>
177
196
 
178
- </Project>
179
- """,
197
+ </Project>
198
+ """,
180
199
  additionalFiles:
181
200
  [
182
201
  ("src/dirs.proj",
@@ -193,25 +212,25 @@ public partial class UpdateWorkerTests
193
212
  """
194
213
  <Project Sdk="Microsoft.NET.Sdk">
195
214
  <PropertyGroup>
196
- <TargetFramework>netstandard2.0</TargetFramework>
215
+ <TargetFramework>net8.0</TargetFramework>
197
216
  </PropertyGroup>
198
217
 
199
218
  <ItemGroup>
200
- <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
219
+ <PackageReference Include="Some.Package" Version="9.0.1" />
201
220
  </ItemGroup>
202
221
  </Project>
203
222
  """)
204
223
  ],
205
224
  // expected
206
225
  expectedProjectContents: """
207
- <Project Sdk="Microsoft.Build.NoTargets">
226
+ <Project Sdk="Microsoft.Build.NoTargets">
208
227
 
209
- <ItemGroup>
210
- <ProjectReference Include="src/*.proj" />
211
- </ItemGroup>
228
+ <ItemGroup>
229
+ <ProjectReference Include="src/*.proj" />
230
+ </ItemGroup>
212
231
 
213
- </Project>
214
- """,
232
+ </Project>
233
+ """,
215
234
  additionalFilesExpected:
216
235
  [
217
236
  ("src/dirs.proj",
@@ -228,31 +247,37 @@ public partial class UpdateWorkerTests
228
247
  """
229
248
  <Project Sdk="Microsoft.NET.Sdk">
230
249
  <PropertyGroup>
231
- <TargetFramework>netstandard2.0</TargetFramework>
250
+ <TargetFramework>net8.0</TargetFramework>
232
251
  </PropertyGroup>
233
252
 
234
253
  <ItemGroup>
235
- <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
254
+ <PackageReference Include="Some.Package" Version="13.0.1" />
236
255
  </ItemGroup>
237
256
  </Project>
238
257
  """)
239
- ]);
258
+ ]
259
+ );
240
260
  }
241
261
 
242
262
  [Fact]
243
263
  public async Task UpdateSingleDependencyInNestedDirsProjUsingRecursiveWildcard()
244
264
  {
245
- await TestUpdateForDirsProj("Newtonsoft.Json", "9.0.1", "13.0.1",
265
+ await TestUpdateForDirsProj("Some.Package", "9.0.1", "13.0.1",
266
+ packages:
267
+ [
268
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "9.0.1", "net8.0"),
269
+ MockNuGetPackage.CreateSimplePackage("Some.Package", "13.0.1", "net8.0"),
270
+ ],
246
271
  // initial
247
272
  projectContents: """
248
- <Project Sdk="Microsoft.Build.NoTargets">
273
+ <Project Sdk="Microsoft.Build.NoTargets">
249
274
 
250
- <ItemGroup>
251
- <ProjectReference Include="**/*.proj" />
252
- </ItemGroup>
275
+ <ItemGroup>
276
+ <ProjectReference Include="**/*.proj" />
277
+ </ItemGroup>
253
278
 
254
- </Project>
255
- """,
279
+ </Project>
280
+ """,
256
281
  additionalFiles:
257
282
  [
258
283
  ("src/dirs.proj",
@@ -269,25 +294,25 @@ public partial class UpdateWorkerTests
269
294
  """
270
295
  <Project Sdk="Microsoft.NET.Sdk">
271
296
  <PropertyGroup>
272
- <TargetFramework>netstandard2.0</TargetFramework>
297
+ <TargetFramework>net8.0</TargetFramework>
273
298
  </PropertyGroup>
274
299
 
275
300
  <ItemGroup>
276
- <PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
301
+ <PackageReference Include="Some.Package" Version="9.0.1" />
277
302
  </ItemGroup>
278
303
  </Project>
279
304
  """)
280
305
  ],
281
306
  // expected
282
307
  expectedProjectContents: """
283
- <Project Sdk="Microsoft.Build.NoTargets">
308
+ <Project Sdk="Microsoft.Build.NoTargets">
284
309
 
285
- <ItemGroup>
286
- <ProjectReference Include="**/*.proj" />
287
- </ItemGroup>
310
+ <ItemGroup>
311
+ <ProjectReference Include="**/*.proj" />
312
+ </ItemGroup>
288
313
 
289
- </Project>
290
- """,
314
+ </Project>
315
+ """,
291
316
  additionalFilesExpected:
292
317
  [
293
318
  ("src/dirs.proj",
@@ -304,15 +329,16 @@ public partial class UpdateWorkerTests
304
329
  """
305
330
  <Project Sdk="Microsoft.NET.Sdk">
306
331
  <PropertyGroup>
307
- <TargetFramework>netstandard2.0</TargetFramework>
332
+ <TargetFramework>net8.0</TargetFramework>
308
333
  </PropertyGroup>
309
334
 
310
335
  <ItemGroup>
311
- <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
336
+ <PackageReference Include="Some.Package" Version="13.0.1" />
312
337
  </ItemGroup>
313
338
  </Project>
314
339
  """)
315
- ]);
340
+ ]
341
+ );
316
342
  }
317
343
 
318
344
  static async Task TestUpdateForDirsProj(
@@ -323,7 +349,8 @@ public partial class UpdateWorkerTests
323
349
  string expectedProjectContents,
324
350
  bool isTransitive = false,
325
351
  (string Path, string Content)[]? additionalFiles = null,
326
- (string Path, string Content)[]? additionalFilesExpected = null)
352
+ (string Path, string Content)[]? additionalFilesExpected = null,
353
+ MockNuGetPackage[]? packages = null)
327
354
  {
328
355
  additionalFiles ??= [];
329
356
  additionalFilesExpected ??= [];
@@ -334,6 +361,8 @@ public partial class UpdateWorkerTests
334
361
 
335
362
  var actualResult = await RunUpdate(testFiles, async (temporaryDirectory) =>
336
363
  {
364
+ await MockNuGetPackagesInDirectory(packages, temporaryDirectory);
365
+
337
366
  var projectPath = Path.Combine(temporaryDirectory, projectFileName);
338
367
  var worker = new UpdaterWorker(new Logger(verbose: true));
339
368
  await worker.RunAsync(temporaryDirectory, projectPath, dependencyName, oldVersion, newVersion, isTransitive);