dependabot-nuget 0.240.0 → 0.242.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 (89) hide show
  1. checksums.yaml +4 -4
  2. data/helpers/build +45 -0
  3. data/helpers/lib/NuGetUpdater/.editorconfig +364 -0
  4. data/helpers/lib/NuGetUpdater/.gitignore +5 -0
  5. data/helpers/lib/NuGetUpdater/Directory.Build.props +10 -0
  6. data/helpers/lib/NuGetUpdater/Directory.Common.props +16 -0
  7. data/helpers/lib/NuGetUpdater/NuGetProjects/Directory.Build.props +14 -0
  8. data/helpers/lib/NuGetUpdater/NuGetProjects/Directory.Build.targets +7 -0
  9. data/helpers/lib/NuGetUpdater/NuGetProjects/Directory.Packages.props +29 -0
  10. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Build.Tasks/NuGet.Build.Tasks.csproj +27 -0
  11. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.CommandLine/AssemblyMetadataExtractor.cs +203 -0
  12. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.CommandLine/NuGet.CommandLine.csproj +33 -0
  13. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Commands/NuGet.Commands.csproj +26 -0
  14. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Common/NuGet.Common.csproj +21 -0
  15. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Config +6 -0
  16. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Configuration/NuGet.Configuration.csproj +24 -0
  17. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Credentials/NuGet.Credentials.csproj +20 -0
  18. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.DependencyResolver.Core/NuGet.DependencyResolver.Core.csproj +22 -0
  19. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Frameworks/NuGet.Frameworks.csproj +17 -0
  20. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.LibraryModel/NuGet.LibraryModel.csproj +17 -0
  21. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.PackageManagement/NuGet.PackageManagement.csproj +27 -0
  22. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Packaging/NuGet.Packaging.csproj +28 -0
  23. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.ProjectModel/NuGet.ProjectModel.csproj +20 -0
  24. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Protocol/NuGet.Protocol.csproj +21 -0
  25. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Resolver/NuGet.Resolver.csproj +20 -0
  26. data/helpers/lib/NuGetUpdater/NuGetProjects/NuGet.Versioning/NuGet.Versioning.csproj +17 -0
  27. data/helpers/lib/NuGetUpdater/NuGetProjects/README.md +1 -0
  28. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/FrameworkCheckCommand.cs +35 -0
  29. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Commands/UpdateCommand.cs +43 -0
  30. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/NuGetUpdater.Cli.csproj +20 -0
  31. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli/Program.cs +31 -0
  32. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.FrameworkCheck.cs +42 -0
  33. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/EntryPointTests.Update.cs +323 -0
  34. data/helpers/lib/NuGetUpdater/NuGetUpdater.Cli.Test/NuGetUpdater.Cli.Test.csproj +24 -0
  35. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Dependency.cs +3 -0
  36. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/DependencyType.cs +12 -0
  37. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/BuildFile.cs +97 -0
  38. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/DotNetToolsJsonBuildFile.cs +23 -0
  39. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/GlobalJsonBuildFile.cs +36 -0
  40. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/JsonBuildFile.cs +47 -0
  41. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/PackagesConfigBuildFile.cs +31 -0
  42. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/ProjectBuildFile.cs +94 -0
  43. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Files/XmlBuildFile.cs +14 -0
  44. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/FrameworkChecker/CompatabilityChecker.cs +39 -0
  45. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/FrameworkChecker/FrameworkCompatibilityService.cs +73 -0
  46. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/FrameworkChecker/SupportedFrameworks.cs +146 -0
  47. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/NuGetUpdater.Core.csproj +27 -0
  48. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/BindingRedirectManager.cs +316 -0
  49. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/BindingRedirectResolver.cs +87 -0
  50. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/ConfigurationFile.cs +3 -0
  51. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/DotNetToolsJsonUpdater.cs +66 -0
  52. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/GlobalJsonUpdater.cs +48 -0
  53. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/PackagesConfigUpdater.cs +172 -0
  54. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/SdkPackageUpdater.cs +498 -0
  55. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdateResult.cs +7 -0
  56. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Updater/UpdaterWorker.cs +105 -0
  57. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/JsonHelper.cs +222 -0
  58. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/Logger.cs +24 -0
  59. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/MSBuildHelper.cs +460 -0
  60. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/NuGetHelper.cs +15 -0
  61. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/PathHelper.cs +69 -0
  62. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/ProcessExtensions.cs +83 -0
  63. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core/Utilities/XmlExtensions.cs +124 -0
  64. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/DotNetToolsJsonBuildFileTests.cs +53 -0
  65. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/GlobalJsonBuildFileTests.cs +80 -0
  66. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/PackagesConfigBuildFileTests.cs +63 -0
  67. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Files/ProjectBuildFileTests.cs +154 -0
  68. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/FrameworkChecker/CompatibilityCheckerFacts.cs +64 -0
  69. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/FrameworkChecker/FrameworkCompatibilityServiceFacts.cs +122 -0
  70. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/FrameworkChecker/SupportedFrameworkFacts.cs +68 -0
  71. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/NuGetUpdater.Core.Test.csproj +23 -0
  72. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TemporaryDirectory.cs +36 -0
  73. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/TestExtensions.cs +15 -0
  74. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/PackagesConfigUpdaterTests.cs +79 -0
  75. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorker.DirsProj.cs +201 -0
  76. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTestBase.cs +147 -0
  77. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.DotNetTools.cs +225 -0
  78. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.GlobalJson.cs +217 -0
  79. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Mixed.cs +94 -0
  80. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.PackagesConfig.cs +938 -0
  81. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Update/UpdateWorkerTests.Sdk.cs +2177 -0
  82. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/JsonHelperTests.cs +239 -0
  83. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/MSBuildHelperTests.cs +598 -0
  84. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/SdkPackageUpdaterHelperTests.cs +179 -0
  85. data/helpers/lib/NuGetUpdater/NuGetUpdater.Core.Test/Utilities/SdkPackageUpdaterTests.cs +238 -0
  86. data/helpers/lib/NuGetUpdater/NuGetUpdater.sln +152 -0
  87. data/helpers/lib/NuGetUpdater/xunit.runner.json +4 -0
  88. data/lib/dependabot/nuget/metadata_finder.rb +4 -4
  89. metadata +91 -5
@@ -0,0 +1,225 @@
1
+ using System.Threading.Tasks;
2
+
3
+ using Xunit;
4
+
5
+ namespace NuGetUpdater.Core.Test.Update;
6
+
7
+ public partial class UpdateWorkerTests
8
+ {
9
+ public class DotNetTools : UpdateWorkerTestBase
10
+ {
11
+ public DotNetTools()
12
+ {
13
+ MSBuildHelper.RegisterMSBuild();
14
+ }
15
+
16
+ [Fact]
17
+ public async Task NoChangeWhenDotNetToolsJsonNotFound()
18
+ {
19
+ await TestNoChangeforProject("Microsoft.BotSay", "1.0.0", "1.1.0",
20
+ // initial
21
+ projectContents: """
22
+ <Project Sdk="Microsoft.NET.Sdk">
23
+ <PropertyGroup>
24
+ <TargetFramework>netstandard2.0</TargetFramework>
25
+ </PropertyGroup>
26
+
27
+ <ItemGroup>
28
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
29
+ </ItemGroup>
30
+ </Project>
31
+ """);
32
+ }
33
+
34
+ [Fact]
35
+ public async Task NoChangeWhenDependencyNotFound()
36
+ {
37
+ await TestNoChangeforProject("Microsoft.BotSay", "1.0.0", "1.1.0",
38
+ // initial
39
+ projectContents: """
40
+ <Project Sdk="Microsoft.NET.Sdk">
41
+ <PropertyGroup>
42
+ <TargetFramework>netstandard2.0</TargetFramework>
43
+ </PropertyGroup>
44
+
45
+ <ItemGroup>
46
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
47
+ </ItemGroup>
48
+ </Project>
49
+ """,
50
+ additionalFiles: new[]
51
+ {
52
+ (".config/dotnet-tools.json", """
53
+ {
54
+ "version": 1,
55
+ "isRoot": true,
56
+ "tools": {
57
+ "dotnetsay": {
58
+ "version": "2.1.3",
59
+ "commands": [
60
+ "dotnetsay"
61
+ ]
62
+ }
63
+ }
64
+ }
65
+ """)
66
+ });
67
+ }
68
+
69
+ [Fact]
70
+ public async Task UpdateSingleDependencyInDirsProj()
71
+ {
72
+ await TestUpdateForProject("Microsoft.BotSay", "1.0.0", "1.1.0",
73
+ // initial
74
+ projectContents: """
75
+ <Project Sdk="Microsoft.NET.Sdk">
76
+ <PropertyGroup>
77
+ <TargetFramework>netstandard2.0</TargetFramework>
78
+ </PropertyGroup>
79
+
80
+ <ItemGroup>
81
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
82
+ </ItemGroup>
83
+ </Project>
84
+ """,
85
+ additionalFiles: new[]
86
+ {
87
+ (".config/dotnet-tools.json", """
88
+ {
89
+ "version": 1,
90
+ "isRoot": true,
91
+ "tools": {
92
+ "microsoft.botsay": {
93
+ "version": "1.0.0",
94
+ "commands": [
95
+ "botsay"
96
+ ]
97
+ },
98
+ "dotnetsay": {
99
+ "version": "2.1.3",
100
+ "commands": [
101
+ "dotnetsay"
102
+ ]
103
+ }
104
+ }
105
+ }
106
+ """)
107
+ },
108
+ // expected
109
+ expectedProjectContents: """
110
+ <Project Sdk="Microsoft.NET.Sdk">
111
+ <PropertyGroup>
112
+ <TargetFramework>netstandard2.0</TargetFramework>
113
+ </PropertyGroup>
114
+
115
+ <ItemGroup>
116
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
117
+ </ItemGroup>
118
+ </Project>
119
+ """,
120
+ additionalFilesExpected: new[]
121
+ {
122
+ (".config/dotnet-tools.json", """
123
+ {
124
+ "version": 1,
125
+ "isRoot": true,
126
+ "tools": {
127
+ "microsoft.botsay": {
128
+ "version": "1.1.0",
129
+ "commands": [
130
+ "botsay"
131
+ ]
132
+ },
133
+ "dotnetsay": {
134
+ "version": "2.1.3",
135
+ "commands": [
136
+ "dotnetsay"
137
+ ]
138
+ }
139
+ }
140
+ }
141
+ """)
142
+ });
143
+ }
144
+
145
+ [Fact]
146
+ public async Task UpdateSingleDependencyWithComments()
147
+ {
148
+ await TestUpdateForProject("Microsoft.BotSay", "1.0.0", "1.1.0",
149
+ // initial
150
+ projectContents: """
151
+ <Project Sdk="Microsoft.NET.Sdk">
152
+ <PropertyGroup>
153
+ <TargetFramework>netstandard2.0</TargetFramework>
154
+ </PropertyGroup>
155
+
156
+ <ItemGroup>
157
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
158
+ </ItemGroup>
159
+ </Project>
160
+ """,
161
+ additionalFiles: new[]
162
+ {
163
+ (".config/dotnet-tools.json", """
164
+ {
165
+ // this is a comment
166
+ "version": 1,
167
+ "isRoot": true,
168
+ "tools": {
169
+ "microsoft.botsay": {
170
+ // this is a deep comment
171
+ "version": "1.0.0",
172
+ "commands": [
173
+ "botsay"
174
+ ]
175
+ },
176
+ "dotnetsay": {
177
+ "version": "2.1.3",
178
+ "commands": [
179
+ "dotnetsay"
180
+ ]
181
+ }
182
+ }
183
+ }
184
+ """)
185
+ },
186
+ // expected
187
+ expectedProjectContents: """
188
+ <Project Sdk="Microsoft.NET.Sdk">
189
+ <PropertyGroup>
190
+ <TargetFramework>netstandard2.0</TargetFramework>
191
+ </PropertyGroup>
192
+
193
+ <ItemGroup>
194
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
195
+ </ItemGroup>
196
+ </Project>
197
+ """,
198
+ additionalFilesExpected: new[]
199
+ {
200
+ (".config/dotnet-tools.json", """
201
+ {
202
+ // this is a comment
203
+ "version": 1,
204
+ "isRoot": true,
205
+ "tools": {
206
+ "microsoft.botsay": {
207
+ // this is a deep comment
208
+ "version": "1.1.0",
209
+ "commands": [
210
+ "botsay"
211
+ ]
212
+ },
213
+ "dotnetsay": {
214
+ "version": "2.1.3",
215
+ "commands": [
216
+ "dotnetsay"
217
+ ]
218
+ }
219
+ }
220
+ }
221
+ """)
222
+ });
223
+ }
224
+ }
225
+ }
@@ -0,0 +1,217 @@
1
+ using System.Threading.Tasks;
2
+
3
+ using Xunit;
4
+
5
+ namespace NuGetUpdater.Core.Test.Update;
6
+
7
+ public partial class UpdateWorkerTests
8
+ {
9
+ public class GlobalJson : UpdateWorkerTestBase
10
+ {
11
+ public GlobalJson()
12
+ {
13
+ MSBuildHelper.RegisterMSBuild();
14
+ }
15
+
16
+ [Fact]
17
+ public async Task NoChangeWhenGlobalJsonNotFound()
18
+ {
19
+ await TestNoChangeforProject("Microsoft.Build.Traversal", "3.2.0", "4.1.0",
20
+ // initial
21
+ projectContents: """
22
+ <Project Sdk="Microsoft.NET.Sdk">
23
+ <PropertyGroup>
24
+ <TargetFramework>netstandard2.0</TargetFramework>
25
+ </PropertyGroup>
26
+
27
+ <ItemGroup>
28
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
29
+ </ItemGroup>
30
+ </Project>
31
+ """);
32
+ }
33
+
34
+ [Fact]
35
+ public async Task NoChangeWhenDependencyNotFound()
36
+ {
37
+ await TestNoChangeforProject("Microsoft.Build.Traversal", "3.2.0", "4.1.0",
38
+ // initial
39
+ projectContents: """
40
+ <Project Sdk="Microsoft.NET.Sdk">
41
+ <PropertyGroup>
42
+ <TargetFramework>netstandard2.0</TargetFramework>
43
+ </PropertyGroup>
44
+
45
+ <ItemGroup>
46
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
47
+ </ItemGroup>
48
+ </Project>
49
+ """,
50
+ additionalFiles: new[]
51
+ {
52
+ ("global.json", """
53
+ {
54
+ "sdk": {
55
+ "version": "6.0.405",
56
+ "rollForward": "latestPatch"
57
+ }
58
+ }
59
+ """)
60
+ });
61
+ }
62
+
63
+ [Fact]
64
+ public async Task NoChangeWhenGlobalJsonInUnexpectedLocation()
65
+ {
66
+ await TestNoChangeforProject("Microsoft.Build.Traversal", "3.2.0", "4.1.0",
67
+ // initial
68
+ projectFilePath: "src/project/project.csproj",
69
+ projectContents: """
70
+ <Project Sdk="Microsoft.NET.Sdk">
71
+ <PropertyGroup>
72
+ <TargetFramework>netstandard2.0</TargetFramework>
73
+ </PropertyGroup>
74
+
75
+ <ItemGroup>
76
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
77
+ </ItemGroup>>
78
+ </Project>
79
+ """,
80
+ additionalFiles: new[]
81
+ {
82
+ ("eng/global.json", """
83
+ {
84
+ "sdk": {
85
+ "version": "6.0.405",
86
+ "rollForward": "latestPatch"
87
+ },
88
+ "msbuild-sdks": {
89
+ "Microsoft.Build.Traversal": "3.2.0"
90
+ }
91
+ }
92
+ """)
93
+ });
94
+ }
95
+
96
+ [Fact]
97
+ public async Task UpdateSingleDependency()
98
+ {
99
+ await TestUpdateForProject("Microsoft.Build.Traversal", "3.2.0", "4.1.0",
100
+ // initial
101
+ projectFilePath: "src/project/project.csproj",
102
+ projectContents: """
103
+ <Project Sdk="Microsoft.NET.Sdk">
104
+ <PropertyGroup>
105
+ <TargetFramework>netstandard2.0</TargetFramework>
106
+ </PropertyGroup>
107
+
108
+ <ItemGroup>
109
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
110
+ </ItemGroup>
111
+ </Project>
112
+ """,
113
+ additionalFiles: new[]
114
+ {
115
+ ("src/global.json", """
116
+ {
117
+ "sdk": {
118
+ "version": "6.0.405",
119
+ "rollForward": "latestPatch"
120
+ },
121
+ "msbuild-sdks": {
122
+ "Microsoft.Build.Traversal": "3.2.0"
123
+ }
124
+ }
125
+ """)
126
+ },
127
+ // expected
128
+ expectedProjectContents: """
129
+ <Project Sdk="Microsoft.NET.Sdk">
130
+ <PropertyGroup>
131
+ <TargetFramework>netstandard2.0</TargetFramework>
132
+ </PropertyGroup>
133
+
134
+ <ItemGroup>
135
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
136
+ </ItemGroup>
137
+ </Project>
138
+ """,
139
+ additionalFilesExpected: new[]
140
+ {
141
+ ("src/global.json", """
142
+ {
143
+ "sdk": {
144
+ "version": "6.0.405",
145
+ "rollForward": "latestPatch"
146
+ },
147
+ "msbuild-sdks": {
148
+ "Microsoft.Build.Traversal": "4.1.0"
149
+ }
150
+ }
151
+ """)
152
+ });
153
+ }
154
+
155
+ [Fact]
156
+ public async Task UpdateDependencyWithComments()
157
+ {
158
+ await TestUpdateForProject("Microsoft.Build.Traversal", "3.2.0", "4.1.0",
159
+ // initial
160
+ projectContents: """
161
+ <Project Sdk="Microsoft.NET.Sdk">
162
+ <PropertyGroup>
163
+ <TargetFramework>netstandard2.0</TargetFramework>
164
+ </PropertyGroup>
165
+
166
+ <ItemGroup>
167
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
168
+ </ItemGroup>
169
+ </Project>
170
+ """,
171
+ additionalFiles: new[]
172
+ {
173
+ ("global.json", """
174
+ {
175
+ // this is a comment
176
+ "sdk": {
177
+ "version": "6.0.405",
178
+ "rollForward": "latestPatch"
179
+ },
180
+ "msbuild-sdks": {
181
+ // this is a deep comment
182
+ "Microsoft.Build.Traversal": "3.2.0"
183
+ }
184
+ }
185
+ """)
186
+ },
187
+ // expected
188
+ expectedProjectContents: """
189
+ <Project Sdk="Microsoft.NET.Sdk">
190
+ <PropertyGroup>
191
+ <TargetFramework>netstandard2.0</TargetFramework>
192
+ </PropertyGroup>
193
+
194
+ <ItemGroup>
195
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
196
+ </ItemGroup>
197
+ </Project>
198
+ """,
199
+ additionalFilesExpected: new[]
200
+ {
201
+ ("global.json", """
202
+ {
203
+ // this is a comment
204
+ "sdk": {
205
+ "version": "6.0.405",
206
+ "rollForward": "latestPatch"
207
+ },
208
+ "msbuild-sdks": {
209
+ // this is a deep comment
210
+ "Microsoft.Build.Traversal": "4.1.0"
211
+ }
212
+ }
213
+ """)
214
+ });
215
+ }
216
+ }
217
+ }
@@ -0,0 +1,94 @@
1
+ using System.Collections.Generic;
2
+ using System.Threading.Tasks;
3
+
4
+ using Xunit;
5
+
6
+ namespace NuGetUpdater.Core.Test.Update;
7
+
8
+ public partial class UpdateWorkerTests
9
+ {
10
+ public class Mixed : UpdateWorkerTestBase
11
+ {
12
+ public Mixed()
13
+ {
14
+ MSBuildHelper.RegisterMSBuild();
15
+ }
16
+
17
+ [Fact]
18
+ public async Task ForPackagesProject_UpdatePackageReference_InBuildProps()
19
+ {
20
+ // update Newtonsoft.Json from 7.0.1 to 13.0.1
21
+ await TestUpdateForProject("Newtonsoft.Json", "7.0.1", "13.0.1",
22
+ // existing
23
+ projectContents: """
24
+ <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
25
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
26
+ <PropertyGroup>
27
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
28
+ </PropertyGroup>
29
+ <ItemGroup>
30
+ <None Include="packages.config" />
31
+ </ItemGroup>
32
+ <ItemGroup>
33
+ <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
34
+ <HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
35
+ <Private>True</Private>
36
+ </Reference>
37
+ </ItemGroup>
38
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
39
+ </Project>
40
+ """,
41
+ additionalFiles: new[]
42
+ {
43
+ ("packages.config", """
44
+ <?xml version="1.0" encoding="utf-8"?>
45
+ <packages>
46
+ <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net45" />
47
+ </packages>
48
+ """),
49
+ ("Directory.Build.props", """
50
+ <Project>
51
+ <ItemGroup>
52
+ <PackageReference Include="Newtonsoft.Json" Version="7.0.1" />
53
+ </ItemGroup>
54
+ </Project>
55
+ """),
56
+ },
57
+ // expected
58
+ expectedProjectContents: """
59
+ <Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
60
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
61
+ <PropertyGroup>
62
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
63
+ </PropertyGroup>
64
+ <ItemGroup>
65
+ <None Include="packages.config" />
66
+ </ItemGroup>
67
+ <ItemGroup>
68
+ <Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed">
69
+ <HintPath>packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
70
+ <Private>True</Private>
71
+ </Reference>
72
+ </ItemGroup>
73
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
74
+ </Project>
75
+ """,
76
+ additionalFilesExpected: new[]
77
+ {
78
+ ("packages.config", """
79
+ <?xml version="1.0" encoding="utf-8"?>
80
+ <packages>
81
+ <package id="Newtonsoft.Json" version="13.0.1" targetFramework="net45" />
82
+ </packages>
83
+ """),
84
+ ("Directory.Build.props", """
85
+ <Project>
86
+ <ItemGroup>
87
+ <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
88
+ </ItemGroup>
89
+ </Project>
90
+ """),
91
+ });
92
+ }
93
+ }
94
+ }