diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 535aad7..25d7f92 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,14 +3,14 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
- "version": "2026.1.3",
+ "version": "2026.2.4.1",
"commands": [
"jb"
],
"rollForward": false
},
"regitlint": {
- "version": "6.3.13",
+ "version": "6.3.14",
"commands": [
"regitlint"
],
diff --git a/Steeltoe.NetCoreToolService.slnx.DotSettings b/Steeltoe.NetCoreToolService.slnx.DotSettings
index dafd99b..8bb869f 100644
--- a/Steeltoe.NetCoreToolService.slnx.DotSettings
+++ b/Steeltoe.NetCoreToolService.slnx.DotSettings
@@ -55,6 +55,7 @@
WARNING
SUGGESTION
DO_NOT_SHOW
+ DO_NOT_SHOW
DO_NOT_SHOW
WARNING
SUGGESTION
@@ -93,6 +94,8 @@
SUGGESTION
WARNING
SUGGESTION
+ DO_NOT_SHOW
+ DO_NOT_SHOW
HINT
WARNING
WARNING
@@ -106,6 +109,7 @@
ShowAndRun
SUGGESTION
False
+ SUGGESTION
<?xml version="1.0" encoding="utf-16"?><Profile name="Steeltoe Full Cleanup"><XMLReformatCode>True</XMLReformatCode><CSCodeStyleAttributes ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeArgumentsStyle="True" ArrangeCodeBodyStyle="True" ArrangeVarStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" ArrangeNullCheckingPattern="True" ArrangeAccessors="True" /><CssAlphabetizeProperties>True</CssAlphabetizeProperties><JsInsertSemicolon>True</JsInsertSemicolon><FormatAttributeQuoteDescriptor>True</FormatAttributeQuoteDescriptor><CorrectVariableKindsDescriptor>True</CorrectVariableKindsDescriptor><VariablesToInnerScopesDescriptor>True</VariablesToInnerScopesDescriptor><StringToTemplatesDescriptor>True</StringToTemplatesDescriptor><JsReformatCode>True</JsReformatCode><JsFormatDocComments>True</JsFormatDocComments><RemoveRedundantQualifiersTs>True</RemoveRedundantQualifiersTs><OptimizeImportsTs>True</OptimizeImportsTs><OptimizeReferenceCommentsTs>True</OptimizeReferenceCommentsTs><PublicModifierStyleTs>True</PublicModifierStyleTs><ExplicitAnyTs>True</ExplicitAnyTs><TypeAnnotationStyleTs>True</TypeAnnotationStyleTs><RelativePathStyleTs>True</RelativePathStyleTs><AsInsteadOfCastTs>True</AsInsteadOfCastTs><HtmlReformatCode>True</HtmlReformatCode><AspOptimizeRegisterDirectives>True</AspOptimizeRegisterDirectives><RemoveCodeRedundancies>True</RemoveCodeRedundancies><CSUseAutoProperty>True</CSUseAutoProperty><CSMakeFieldReadonly>True</CSMakeFieldReadonly><CSMakeAutoPropertyGetOnly>True</CSMakeAutoPropertyGetOnly><CSArrangeQualifiers>True</CSArrangeQualifiers><CSFixBuiltinTypeReferences>True</CSFixBuiltinTypeReferences><CssReformatCode>True</CssReformatCode><CSOptimizeUsings><OptimizeUsings>True</OptimizeUsings></CSOptimizeUsings><CSShortenReferences>True</CSShortenReferences><CSReformatCode>True</CSReformatCode><CSharpFormatDocComments>True</CSharpFormatDocComments><CSReorderTypeMembers>True</CSReorderTypeMembers><XAMLCollapseEmptyTags>False</XAMLCollapseEmptyTags><CSReformatInactiveBranches>True</CSReformatInactiveBranches><CSharpReformatComments>True</CSharpReformatComments><CSUpdateFileHeader>True</CSUpdateFileHeader></Profile>
Steeltoe Full Cleanup
Required
@@ -622,6 +626,7 @@ See the LICENSE file in the project root for more information.
True
True
True
+ True
True
Replace argument null check using throw expression with ArgumentNullException.ThrowIfNull
True
diff --git a/Version.props b/Version.props
index 70fb85b..ba12d66 100644
--- a/Version.props
+++ b/Version.props
@@ -6,14 +6,14 @@
10.0.*
- 10.0.*
+ 10.1.*
7.2.*
10.0.*
- 18.6.*
- 4.20.69
- 2.16.*
- 10.25.0.139117
- 4.2.*
+ 18.11.*
+ 6.2.*
+ 2.19.*
+ 10.33.0.1635
+ 4.3.*
1.2.0-beta.556
3.2.*
3.1.*
diff --git a/test/NetCoreToolService.Test/Controllers/NewControllerTest.cs b/test/NetCoreToolService.Test/Controllers/NewControllerTest.cs
index 53c061a..b4a199c 100644
--- a/test/NetCoreToolService.Test/Controllers/NewControllerTest.cs
+++ b/test/NetCoreToolService.Test/Controllers/NewControllerTest.cs
@@ -9,7 +9,7 @@
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging.Abstractions;
-using Moq;
+using NSubstitute;
using Steeltoe.NetCoreToolService.Controllers;
using Steeltoe.NetCoreToolService.Models;
using Steeltoe.NetCoreToolService.SteeltoeUtils.Diagnostics;
@@ -31,9 +31,9 @@ public sealed class NewControllerTest
public async Task GetTemplates_Should_Return_All_Templates()
{
// Arrange
- var executor = new Mock();
+ var executor = Substitute.For();
- executor.Setup(c => c.ExecuteAsync($"{NewController.ExecutableName} new list", null, -1)).ReturnsAsync(new CommandResult
+ executor.ExecuteAsync($"{NewController.ExecutableName} new list", null, -1).Returns(new CommandResult
{
Output = """
These templates matched your input:
@@ -45,7 +45,7 @@ API Controller apicontroller [C#] Web/ASP.NET
"""
});
- var controller = new NewController(executor.Object, EmptyConfiguration, NullLogger.Instance);
+ var controller = new NewController(executor, EmptyConfiguration, NullLogger.Instance);
// Act
ActionResult result = await controller.GetTemplates();
@@ -81,9 +81,9 @@ public async Task InstallTemplates_Is_Disabled_By_Default()
public async Task InstallTemplates_Should_Return_Installed_Templates()
{
// Arrange
- var executor = new Mock();
+ var executor = Substitute.For();
- executor.SetupSequence(c => c.ExecuteAsync($"{NewController.ExecutableName} new list", null, -1)).ReturnsAsync(new CommandResult
+ executor.ExecuteAsync($"{NewController.ExecutableName} new list", null, -1).Returns(new CommandResult
{
Output = """
These templates matched your input:
@@ -93,7 +93,7 @@ Template Name Short Name Language Tags
My Template myt lang tags
My Other Template my-ot other-lang other-tags
"""
- }).ReturnsAsync(new CommandResult
+ }, new CommandResult
{
Output = """
These templates matched your input:
@@ -107,9 +107,9 @@ Other New Template ont big-talk other-stuff
"""
});
- executor.Setup(c => c.ExecuteAsync($"{NewController.ExecutableName} new install My.Templates", null, -1)).ReturnsAsync(default(CommandResult));
+ executor.ExecuteAsync($"{NewController.ExecutableName} new install My.Templates", null, -1).Returns(default(CommandResult));
- var controller = new NewController(executor.Object, SensitiveEndpointsEnabledConfiguration, NullLogger.Instance);
+ var controller = new NewController(executor, SensitiveEndpointsEnabledConfiguration, NullLogger.Instance);
// Act
ActionResult result = await controller.InstallTemplates("My.Templates");
@@ -160,9 +160,9 @@ public async Task UninstallTemplates_Is_Disabled_By_Default()
public async Task UninstallTemplates_Should_Return_Uninstalled_Templates()
{
// Arrange
- var executor = new Mock();
+ var executor = Substitute.For();
- executor.SetupSequence(c => c.ExecuteAsync($"{NewController.ExecutableName} new list", null, -1)).ReturnsAsync(new CommandResult
+ executor.ExecuteAsync($"{NewController.ExecutableName} new list", null, -1).Returns(new CommandResult
{
Output = """
These templates matched your input:
@@ -174,7 +174,7 @@ My Template myt lang tags
My Other Template my-ot other-lang other-tags
Other New Template ont big-talk other-stuff
"""
- }).ReturnsAsync(new CommandResult
+ }, new CommandResult
{
Output = """
These templates matched your input:
@@ -186,9 +186,9 @@ My Other Template my-ot other-lang other-tags
"""
});
- executor.Setup(c => c.ExecuteAsync($"{NewController.ExecutableName} new uninstall My.Templates", null, -1)).ReturnsAsync(default(CommandResult));
+ executor.ExecuteAsync($"{NewController.ExecutableName} new uninstall My.Templates", null, -1).Returns(default(CommandResult));
- var controller = new NewController(executor.Object, SensitiveEndpointsEnabledConfiguration, NullLogger.Instance);
+ var controller = new NewController(executor, SensitiveEndpointsEnabledConfiguration, NullLogger.Instance);
// Act
ActionResult result = await controller.UninstallTemplates("My.Templates");
@@ -261,14 +261,14 @@ net6.0 Target net6.0
dotnet new classlib -h --language F#
""";
- var executor = new Mock();
+ var executor = Substitute.For();
- executor.Setup(c => c.ExecuteAsync($"{NewController.ExecutableName} new classlib --help", null, -1)).ReturnsAsync(new CommandResult
+ executor.ExecuteAsync($"{NewController.ExecutableName} new classlib --help", null, -1).Returns(new CommandResult
{
Output = helpText
});
- var controller = new NewController(executor.Object, EmptyConfiguration, NullLogger.Instance);
+ var controller = new NewController(executor, EmptyConfiguration, NullLogger.Instance);
// Act
ActionResult result = await controller.GetTemplateHelp("classlib");
@@ -468,15 +468,15 @@ public async Task GetTemplateProject_UnknownPackagingFormat_Should_Return_BadReq
public async Task GetTemplateProject_UnknownError_Should_Return_InternalServerError()
{
// Arrange
- var executor = new Mock();
+ var executor = Substitute.For();
- executor.Setup(c => c.ExecuteAsync(It.IsAny(), It.IsAny(), -1)).ReturnsAsync(new CommandResult
+ executor.ExecuteAsync(Arg.Any(), Arg.Any(), Arg.Is(-1)).Returns(new CommandResult
{
ExitCode = 1,
Error = "Something bad happened."
});
- var controller = new NewController(executor.Object, EmptyConfiguration, NullLogger.Instance);
+ var controller = new NewController(executor, EmptyConfiguration, NullLogger.Instance);
// Act
ActionResult result = await controller.GetTemplateProject("my-template");
@@ -491,15 +491,15 @@ public async Task GetTemplateProject_UnknownError_Should_Return_InternalServerEr
public async Task GetTemplateProject_UnknownOutput_Should_Return_InternalServerError()
{
// Arrange
- var executor = new Mock();
+ var executor = Substitute.For();
- executor.Setup(c => c.ExecuteAsync(It.IsAny(), It.IsAny(), -1)).ReturnsAsync(new CommandResult
+ executor.ExecuteAsync(Arg.Any(), Arg.Any(), Arg.Is(-1)).Returns(new CommandResult
{
Output = "Unexpected output.",
Error = string.Empty
});
- var controller = new NewController(executor.Object, EmptyConfiguration, NullLogger.Instance);
+ var controller = new NewController(executor, EmptyConfiguration, NullLogger.Instance);
// Act
ActionResult result = await controller.GetTemplateProject("my-template");
diff --git a/test/NetCoreToolService.Test/Steeltoe.NetCoreToolService.Test.csproj b/test/NetCoreToolService.Test/Steeltoe.NetCoreToolService.Test.csproj
index 798c664..e682999 100644
--- a/test/NetCoreToolService.Test/Steeltoe.NetCoreToolService.Test.csproj
+++ b/test/NetCoreToolService.Test/Steeltoe.NetCoreToolService.Test.csproj
@@ -17,7 +17,7 @@
-
+