Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"jetbrains.resharper.globaltools": {
"version": "2025.3.3",
"version": "2026.1.0.1",
"commands": [
"jb"
],
Expand Down
28 changes: 10 additions & 18 deletions src/Common/src/Hosting/HostBuilderWrapper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,14 +86,14 @@ private static void InvokeDeferredActions<TArgument>(IEnumerable<Action<HostBuil
}
}

public HostBuilderWrapper ConfigureServices(Action<IServiceCollection> configureAction)
public void ConfigureServices(Action<IServiceCollection> configureAction)
{
ArgumentNullException.ThrowIfNull(configureAction);

return ConfigureServices((_, services) => configureAction(services));
ConfigureServices((_, services) => configureAction(services));
}

public HostBuilderWrapper ConfigureServices(Action<HostBuilderContextWrapper, IServiceCollection> configureAction)
public void ConfigureServices(Action<HostBuilderContextWrapper, IServiceCollection> configureAction)
{
ArgumentNullException.ThrowIfNull(configureAction);

Expand All @@ -106,18 +106,16 @@ public HostBuilderWrapper ConfigureServices(Action<HostBuilderContextWrapper, IS
{
_configureServicesActions.Add(configureAction);
}

return this;
}

public HostBuilderWrapper ConfigureAppConfiguration(Action<IConfigurationBuilder> configureAction)
public void ConfigureAppConfiguration(Action<IConfigurationBuilder> configureAction)
{
ArgumentNullException.ThrowIfNull(configureAction);

return ConfigureAppConfiguration((_, configurationBuilder) => configureAction(configurationBuilder));
ConfigureAppConfiguration((_, configurationBuilder) => configureAction(configurationBuilder));
}

public HostBuilderWrapper ConfigureAppConfiguration(Action<HostBuilderContextWrapper, IConfigurationBuilder> configureAction)
public void ConfigureAppConfiguration(Action<HostBuilderContextWrapper, IConfigurationBuilder> configureAction)
{
ArgumentNullException.ThrowIfNull(configureAction);

Expand All @@ -130,18 +128,16 @@ public HostBuilderWrapper ConfigureAppConfiguration(Action<HostBuilderContextWra
{
_configureAppConfigurationActions.Add(configureAction);
}

return this;
}

public HostBuilderWrapper ConfigureLogging(Action<ILoggingBuilder> configureAction)
public void ConfigureLogging(Action<ILoggingBuilder> configureAction)
{
ArgumentNullException.ThrowIfNull(configureAction);

return ConfigureLogging((_, configurationBuilder) => configureAction(configurationBuilder));
ConfigureLogging((_, configurationBuilder) => configureAction(configurationBuilder));
}

public HostBuilderWrapper ConfigureLogging(Action<HostBuilderContextWrapper, ILoggingBuilder> configureAction)
public void ConfigureLogging(Action<HostBuilderContextWrapper, ILoggingBuilder> configureAction)
{
ArgumentNullException.ThrowIfNull(configureAction);

Expand All @@ -156,11 +152,9 @@ public HostBuilderWrapper ConfigureLogging(Action<HostBuilderContextWrapper, ILo
_configureServicesActions.Add((contextWrapper, collection) => collection.AddLogging(builder => configureAction(contextWrapper, builder)));
#pragma warning restore S4792 // Configuring loggers is security-sensitive
}

return this;
}

public HostBuilderWrapper ConfigureWebHost(Action<IWebHostBuilder> configureAction)
public void ConfigureWebHost(Action<IWebHostBuilder> configureAction)
{
ArgumentNullException.ThrowIfNull(configureAction);

Expand All @@ -184,7 +178,5 @@ public HostBuilderWrapper ConfigureWebHost(Action<IWebHostBuilder> configureActi
{
throw new NotSupportedException($"Unknown host builder type '{_innerBuilder.GetType()}'.");
}

return this;
}
}
4 changes: 4 additions & 0 deletions src/Common/test/Hosting.Test/HostBuilderWrapperTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public async Task WebApplicationBuilder_Wraps()
HostBuilderWrapper wrapper = HostBuilderWrapper.Wrap(builder);
wrapper.ConfigureServices(services => services.AddSingleton<InjectableType>());
wrapper.ConfigureAppConfiguration(configurationBuilder => configurationBuilder.AddInMemoryCollection(appSettings));
// ReSharper disable once AccessToDisposedClosure
wrapper.ConfigureLogging(loggingBuilder => loggingBuilder.AddProvider(capturingLoggerProvider));
wrapper.ConfigureWebHost(hostBuilder => hostBuilder.UseUrls("http://*:8888"));
wrapper.ConfigureServices((contextWrapper, _) => contextWrapper.HostEnvironment.ApplicationName = "TestApp");
Expand Down Expand Up @@ -64,6 +65,7 @@ public void HostApplicationBuilder_Wraps()
HostBuilderWrapper wrapper = HostBuilderWrapper.Wrap(builder);
wrapper.ConfigureServices(services => services.AddSingleton<InjectableType>());
wrapper.ConfigureAppConfiguration(configurationBuilder => configurationBuilder.AddInMemoryCollection(appSettings));
// ReSharper disable once AccessToDisposedClosure
wrapper.ConfigureLogging(loggingBuilder => loggingBuilder.AddProvider(capturingLoggerProvider));
wrapper.ConfigureServices((contextWrapper, _) => contextWrapper.HostEnvironment.ApplicationName = "TestApp");

Expand Down Expand Up @@ -98,6 +100,7 @@ public void WebHostBuilder_Wraps()
HostBuilderWrapper wrapper = HostBuilderWrapper.Wrap(builder);
wrapper.ConfigureServices(services => services.AddSingleton<InjectableType>());
wrapper.ConfigureAppConfiguration(configurationBuilder => configurationBuilder.AddInMemoryCollection(appSettings));
// ReSharper disable once AccessToDisposedClosure
wrapper.ConfigureLogging(loggingBuilder => loggingBuilder.AddProvider(capturingLoggerProvider));
wrapper.ConfigureWebHost(hostBuilder => hostBuilder.UseUrls("http://*:8888"));
wrapper.ConfigureServices((contextWrapper, _) => contextWrapper.HostEnvironment.ApplicationName = "TestApp");
Expand Down Expand Up @@ -135,6 +138,7 @@ public void GenericHostBuilder_Wraps()
HostBuilderWrapper wrapper = HostBuilderWrapper.Wrap(builder);
wrapper.ConfigureServices(services => services.AddSingleton<InjectableType>());
wrapper.ConfigureAppConfiguration(configurationBuilder => configurationBuilder.AddInMemoryCollection(appSettings));
// ReSharper disable once AccessToDisposedClosure
wrapper.ConfigureLogging(loggingBuilder => loggingBuilder.AddProvider(capturingLoggerProvider));
wrapper.ConfigureWebHost(hostBuilder => hostBuilder.UseUrls("http://*:8888"));
wrapper.ConfigureServices((contextWrapper, _) => contextWrapper.HostEnvironment.ApplicationName = "TestApp");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ public async Task Upgrades_existing_loggers()
var bootstrapLoggerFactory = BootstrapLoggerFactory.CreateEmpty(loggingBuilder =>
{
loggingBuilder.SetMinimumLevel(LogLevel.Trace);
// ReSharper disable once AccessToDisposedClosure
loggingBuilder.AddProvider(capturingLoggerProvider);
});

Expand Down
2 changes: 1 addition & 1 deletion src/Common/test/TestResources/EmptyDisposable.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace Steeltoe.Common.TestResources;
/// <summary>
/// Implements <see cref="IDisposable" /> without doing anything.
/// </summary>
public sealed class EmptyDisposable : IDisposable
internal sealed class EmptyDisposable : IDisposable
{
public static IDisposable Instance { get; } = new EmptyDisposable();

Expand Down
19 changes: 1 addition & 18 deletions src/Common/test/TestResources/IO/Sandbox.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,30 +29,13 @@ public Sandbox()
/// <returns>
/// The physical path.
/// </returns>
public string ResolvePath(string path)
private string ResolvePath(string path)
{
ArgumentNullException.ThrowIfNull(path);

return Path.Combine(FullPath, path);
}

/// <summary>
/// Creates a directory at the specified path within the sandbox.
/// </summary>
/// <param name="path">
/// The directory path.
/// </param>
/// <returns>
/// The physical path of the created directory.
/// </returns>
public string CreateDirectory(string path)
{
ArgumentNullException.ThrowIfNull(path);

DirectoryInfo directoryInfo = Directory.CreateDirectory(ResolvePath(path));
return directoryInfo.FullName;
}

/// <summary>
/// Creates a file at the specified path within the sandbox.
/// </summary>
Expand Down
10 changes: 1 addition & 9 deletions src/Common/test/TestResources/IO/TempDirectory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,13 @@ namespace Steeltoe.Common.TestResources.IO;
/// </summary>
public class TempDirectory : TempPath
{
/// <summary>
/// Initializes a new instance of the <see cref="TempDirectory" /> class.
/// </summary>
public TempDirectory()
: base(string.Empty)
{
}

/// <summary>
/// Initializes a new instance of the <see cref="TempDirectory" /> class.
/// </summary>
/// <param name="prefix">
/// Directory name prefix.
/// </param>
public TempDirectory(string prefix)
protected TempDirectory(string prefix)
: base(prefix)
{
}
Expand Down
11 changes: 0 additions & 11 deletions src/Common/test/TestResources/IO/TempFile.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,6 @@ public TempFile()
{
}

/// <summary>
/// Initializes a new instance of the <see cref="TempFile" /> class.
/// </summary>
/// <param name="prefix">
/// File name prefix.
/// </param>
public TempFile(string prefix)
: base(prefix)
{
}

/// <summary>
/// Creates the temporary file.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ public override void Load()
return await DoLoadAsync(optionsSnapshot, updateDictionary, cancellationToken);
}

internal async Task<ConfigEnvironment?> DoLoadAsync(ConfigServerClientOptions optionsSnapshot, bool updateDictionary, CancellationToken cancellationToken)
private async Task<ConfigEnvironment?> DoLoadAsync(ConfigServerClientOptions optionsSnapshot, bool updateDictionary, CancellationToken cancellationToken)
{
LogFetchingRemoteConfiguration();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -787,7 +787,7 @@ await TestFailureTracer.CaptureAsync(async tracer =>

using var provider = new ConfigServerConfigurationProvider(options, null, null, () => handler, tracer.LoggerFactory);

Action action = () => provider.Load();
Action action = provider.Load;

action.Should().ThrowExactly<ConfigServerException>();

Expand Down
34 changes: 0 additions & 34 deletions src/Configuration/test/ConfigServer.Test/HttpRequestInfo.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private static string GetEmptyK8SResourcesDirectory()

private sealed class TestPostProcessor : IConfigurationPostProcessor
{
public bool PostProcessorCalled { get; set; }
public bool PostProcessorCalled { get; private set; }

public void PostProcessConfiguration(PostProcessorConfigurationProvider provider, IDictionary<string, string?> configurationData)
{
Expand Down
4 changes: 2 additions & 2 deletions src/Discovery/src/Eureka/EurekaDiscoveryClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ public EurekaDiscoveryClient(EurekaApplicationInfoManager appInfoManager, Eureka
return Applications.GetRegisteredApplication(appName);
}

internal IReadOnlyList<InstanceInfo> GetInstancesByVipAddress(string vipAddress)
private ReadOnlyCollection<InstanceInfo> GetInstancesByVipAddress(string vipAddress)
{
ArgumentException.ThrowIfNullOrWhiteSpace(vipAddress);

Expand Down Expand Up @@ -576,7 +576,7 @@ public Task<IList<IServiceInstance>> GetInstancesAsync(string serviceId, Cancell
{
ArgumentException.ThrowIfNullOrWhiteSpace(serviceId);

IReadOnlyList<InstanceInfo> instances = GetInstancesByVipAddress(serviceId);
ReadOnlyCollection<InstanceInfo> instances = GetInstancesByVipAddress(serviceId);
IServiceInstance[] serviceInstances = instances.Select(instance => new EurekaServiceInstance(instance)).Cast<IServiceInstance>().ToArray();

if (_logger.IsEnabled(LogLevel.Debug))
Expand Down
2 changes: 2 additions & 0 deletions src/Discovery/test/Eureka.Test/Transport/EurekaClientTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
using Steeltoe.Discovery.Eureka.Configuration;
using Steeltoe.Discovery.Eureka.Transport;

// ReSharper disable AccessToDisposedClosure

namespace Steeltoe.Discovery.Eureka.Test.Transport;

public sealed class EurekaClientTest
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@ public async Task RedactsHttpHeaders()
WebApplicationBuilder builder = TestWebApplicationBuilderFactory.Create();
builder.Configuration.AddInMemoryCollection(appSettings);
builder.Configuration.AddCloudFoundry();
// ReSharper disable once AccessToDisposedClosure
builder.Services.AddLogging(options => options.SetMinimumLevel(LogLevel.Trace).AddProvider(capturingLoggerProvider));
builder.Services.AddCloudFoundryActuator();
await using WebApplication app = builder.Build();
Expand Down Expand Up @@ -378,7 +379,9 @@ public async Task Returns_expected_response_on_permission_check(string scenario,
host.Services.GetRequiredService<HttpClientHandlerFactory>().Using(CloudControllerPermissionsMock.GetHttpMessageHandler());
await host.StartAsync(TestContext.Current.CancellationToken);

// ReSharper disable once ShortLivedHttpClient
using var client = new HttpClient();

var authenticationRequest = new HttpRequestMessage(HttpMethod.Get, new Uri("http://localhost:5000/cloudfoundryapplication"));
authenticationRequest.Headers.Authorization = new AuthenticationHeaderValue("Bearer", MockAccessToken);
var authorizationRequest = new HttpRequestMessage(HttpMethod.Get, new Uri("http://localhost:5000/cloudfoundryapplication/info"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ public void TracksAndReturnsState()
{
var availability = new ApplicationAvailability(NullLogger<ApplicationAvailability>.Instance);

availability.SetAvailabilityState("Test", LivenessState.Broken, GetType().Name);
availability.SetAvailabilityState(ApplicationAvailability.LivenessKey, LivenessState.Correct, GetType().Name);
availability.SetAvailabilityState(ApplicationAvailability.ReadinessKey, ReadinessState.AcceptingTraffic, GetType().Name);
availability.SetAvailabilityState("Test", LivenessState.Broken, nameof(ApplicationAvailabilityTest));
availability.SetAvailabilityState(ApplicationAvailability.LivenessKey, LivenessState.Correct, nameof(ApplicationAvailabilityTest));
availability.SetAvailabilityState(ApplicationAvailability.ReadinessKey, ReadinessState.AcceptingTraffic, nameof(ApplicationAvailabilityTest));

availability.GetAvailabilityState("Test").Should().Be(LivenessState.Broken);
availability.GetLivenessState().Should().Be(LivenessState.Correct);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ internal sealed class ComplexDetailsContributor : IHealthContributor

private sealed class TestHealthDetails
{
// ReSharper disable UnusedAutoPropertyAccessor.Local
[JsonPropertyName("testString")]
public string TestString { get; set; } = "test-string";

Expand Down Expand Up @@ -69,5 +70,6 @@ private sealed class TestHealthDetails
["Two"] = 2,
["Three"] = 3
};
// ReSharper restore UnusedAutoPropertyAccessor.Local
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public async Task Records_http_requests()
host.MapGet("/hello", () => "Hello World!");
await host.StartAsync(TestContext.Current.CancellationToken);

// ReSharper disable once ShortLivedHttpClient
using var httpClient = new HttpClient();

HttpResponseMessage helloResponse =
Expand Down
2 changes: 2 additions & 0 deletions src/Management/test/Tasks.Test/TaskHostExtensionsTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ public async Task WebApplication_LogsErrorOnUnknownTask()
WebApplicationBuilder builder = TestWebApplicationBuilderFactory.Create(args);

using var capturingLoggerProvider = new CapturingLoggerProvider(category => category.StartsWith("Steeltoe.", StringComparison.Ordinal));
// ReSharper disable once AccessToDisposedClosure
builder.Services.AddLogging(options => options.AddProvider(capturingLoggerProvider));

WebApplication app = builder.Build();
Expand Down Expand Up @@ -338,6 +339,7 @@ public async Task RunAsync(CancellationToken cancellationToken)
}
}

// ReSharper disable once ClassNeverInstantiated.Local
private sealed class ThrowingApplicationTask : IApplicationTask
{
public Task RunAsync(CancellationToken cancellationToken)
Expand Down
Loading