Skip to content

Commit c81d746

Browse files
Copilotthomhurst
andauthored
Fix DotNetNugetDeleteOptions to use separate positional arguments (#1262)
* Initial plan * Fix DotNetNugetDeleteOptions to use separate package name and version arguments Co-authored-by: thomhurst <30480171+thomhurst@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: thomhurst <30480171+thomhurst@users.noreply.github.com>
1 parent a14f5bc commit c81d746

File tree

2 files changed

+39
-6
lines changed

2 files changed

+39
-6
lines changed

src/ModularPipelines.DotNet/Options/DotNetNugetDeleteOptions.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,27 @@ namespace ModularPipelines.DotNet.Options;
77
public record DotNetNugetDeleteOptions : DotNetOptions
88
{
99
public DotNetNugetDeleteOptions(
10-
string packageNamePackageVersion
10+
string packageName,
11+
string packageVersion
1112
)
1213
{
13-
CommandParts = ["nuget", "delete", "[<PACKAGE_NAME> <PACKAGE_VERSION>]"];
14+
CommandParts = ["nuget", "delete", "<PACKAGE_NAME>", "<PACKAGE_VERSION>"];
1415

15-
PackageNamePackageVersion = packageNamePackageVersion;
16+
PackageName = packageName;
17+
18+
PackageVersion = packageVersion;
1619
}
1720

1821
public DotNetNugetDeleteOptions()
1922
{
20-
CommandParts = ["nuget", "delete", "[<PACKAGE_NAME> <PACKAGE_VERSION>]"];
23+
CommandParts = ["nuget", "delete", "<PACKAGE_NAME>", "<PACKAGE_VERSION>"];
2124
}
2225

23-
[PositionalArgument(PlaceholderName = "[<PACKAGE_NAME> <PACKAGE_VERSION>]")]
24-
public string? PackageNamePackageVersion { get; set; }
26+
[PositionalArgument(PlaceholderName = "<PACKAGE_NAME>")]
27+
public string? PackageName { get; set; }
28+
29+
[PositionalArgument(PlaceholderName = "<PACKAGE_VERSION>")]
30+
public string? PackageVersion { get; set; }
2531

2632
[BooleanCommandSwitch("--force-english-output")]
2733
public virtual bool? ForceEnglishOutput { get; set; }

test/ModularPipelines.UnitTests/CommandParserTests.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,33 @@ public async Task No_Matching_Placeholder_Positional_Is_Appended()
159159
await Assert.That(result.CommandInput).IsEqualTo("dotnet add MyProject.csproj");
160160
}
161161

162+
[Test]
163+
public async Task DotNet_Nuget_Delete_With_Two_Positional_Arguments()
164+
{
165+
var result = await GetResult(new DotNetNugetDeleteOptions("MyPackageName", "1.0.0"));
166+
await Assert.That(result.CommandInput).IsEqualTo("dotnet nuget delete MyPackageName 1.0.0");
167+
}
168+
169+
[Test]
170+
public async Task DotNet_Nuget_Delete_With_Source_Option()
171+
{
172+
var result = await GetResult(new DotNetNugetDeleteOptions("MyPackageName", "1.0.0")
173+
{
174+
Source = "https://api.nuget.org/v3/index.json"
175+
});
176+
await Assert.That(result.CommandInput).IsEqualTo("dotnet nuget delete MyPackageName 1.0.0 --source https://api.nuget.org/v3/index.json");
177+
}
178+
179+
[Test]
180+
public async Task DotNet_Nuget_Delete_With_ApiKey_Option()
181+
{
182+
var result = await GetResult(new DotNetNugetDeleteOptions("MyPackageName", "1.0.0")
183+
{
184+
ApiKey = "my-secret-key"
185+
});
186+
await Assert.That(result.CommandInput).IsEqualTo("dotnet nuget delete MyPackageName 1.0.0 --api-key my-secret-key");
187+
}
188+
162189
private async Task<CommandResult> GetResult(CommandLineToolOptions options)
163190
{
164191
var command = await GetService<ICommand>();

0 commit comments

Comments
 (0)