Skip to content

Commit

Permalink
Bump packages (#69)
Browse files Browse the repository at this point in the history
  • Loading branch information
sergeyshaykhullin authored Jan 8, 2024
1 parent e85575e commit a34b7f9
Show file tree
Hide file tree
Showing 9 changed files with 106 additions and 94 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,28 @@
</ItemGroup>

<ItemGroup Label="Packages">
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="7.0.10" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="8.0.0" />
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageReference Update="Roslynator.Analyzers" Version="4.8.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Update="Roslynator.Formatting.Analyzers" Version="4.8.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Nullable.Extended.Analyzer" Version="1.15.6169">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.135">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="IDisposableAnalyzers" Version="4.0.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

</Project>
4 changes: 2 additions & 2 deletions src/Minio.AspNetCore/IMinioClientFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ namespace Minio.AspNetCore
{
public interface IMinioClientFactory
{
MinioClient CreateClient();
MinioClient CreateClient(string name);
IMinioClient CreateClient();
IMinioClient CreateClient(string name);
}
}
27 changes: 24 additions & 3 deletions src/Minio.AspNetCore/Minio.AspNetCore.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,30 @@
</PropertyGroup>

<ItemGroup Label="Packages">
<PackageReference Include="Minio" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
<PackageReference Include="Minio" Version="6.0.1" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.0" />
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageReference Update="Roslynator.Analyzers" Version="4.8.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Update="Roslynator.Formatting.Analyzers" Version="4.8.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Nullable.Extended.Analyzer" Version="1.15.6169">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.135">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="IDisposableAnalyzers" Version="4.0.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

</Project>
8 changes: 6 additions & 2 deletions src/Minio.AspNetCore/MinioClientFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,23 @@ public MinioClientFactory(IOptionsMonitor<MinioOptions> optionsMonitor)
this.optionsMonitor = optionsMonitor;
}

public MinioClient CreateClient()
public IMinioClient CreateClient()
{
return CreateClient(Options.DefaultName);
}

public MinioClient CreateClient(string name)
public IMinioClient CreateClient(string name)
{
var options = optionsMonitor.Get(name);

#pragma warning disable IDISP001
#pragma warning disable CA2000
var client = new MinioClient()
#pragma warning restore CA2000
.WithEndpoint(options.Endpoint)
.WithCredentials(options.AccessKey, options.SecretKey)
.WithSessionToken(options.SessionToken);
#pragma warning restore IDISP001

if (!string.IsNullOrEmpty(options.Region))
{
Expand Down
4 changes: 2 additions & 2 deletions src/Minio.AspNetCore/MinioOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ public class MinioOptions
public string Region { get; set; } = string.Empty;
public string SessionToken { get; set; } = string.Empty;

internal Action<MinioClient>? Configure { get; private set; }
internal Action<IMinioClient>? Configure { get; private set; }

public void ConfigureClient(Action<MinioClient> configure)
public void ConfigureClient(Action<IMinioClient> configure)
{
Configure = configure;
}
Expand Down
31 changes: 26 additions & 5 deletions tests/Minio.AspNetCore.Tests.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<TargetFramework>net8.0</TargetFramework>
<IsPackable>false</IsPackable>
<Nullable>enable</Nullable>
</PropertyGroup>
Expand All @@ -11,13 +11,34 @@
</ItemGroup>

<ItemGroup Label="Tests">
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Update="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<PackageReference Update="Roslynator.Analyzers" Version="4.8.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Update="Roslynator.Formatting.Analyzers" Version="4.8.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Nullable.Extended.Analyzer" Version="1.15.6169">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="Meziantou.Analyzer" Version="2.0.135">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Update="IDisposableAnalyzers" Version="4.0.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup Label="xUnit">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.7.0" />
<PackageReference Include="xunit" Version="2.5.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
<PackageReference Include="xunit" Version="2.6.5" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.6">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
Expand Down
91 changes: 18 additions & 73 deletions tests/MinioAsserts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,92 +6,37 @@ namespace Minio.AspNetCore.Tests
{
public static class MinioAsserts
{
public static void AssertOptionsMatch(MinioClient client, MinioOptions options)
public static void AssertOptionsMatch(IMinioClient client, MinioOptions options)
{
if (client is null)
{
throw new ArgumentNullException(nameof(client));
}

if (options is null)
{
throw new ArgumentNullException(nameof(options));
}

var clientType = client.GetType();

var endpoint = clientType
.GetProperty("BaseUrl", BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client);
Assert.Equal(options.Endpoint, endpoint);

var region = clientType
.GetField(nameof(MinioOptions.Region), BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client);
Assert.Equal(options.Region, region);

var accessKey = clientType
.GetProperty(nameof(MinioOptions.AccessKey), BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client);
Assert.Equal(options.AccessKey, accessKey);

var secretKey = clientType
.GetProperty(nameof(MinioOptions.SecretKey), BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client);
Assert.Equal(options.SecretKey, secretKey);

var sessionToken = clientType
.GetProperty(nameof(MinioOptions.SessionToken), BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client);
Assert.Equal(options.SessionToken, sessionToken);
ArgumentNullException.ThrowIfNull(client);
ArgumentNullException.ThrowIfNull(options);

Assert.Equal($"{(client.Config.Secure ? "https" : "http")}://{options.Endpoint}", client.Config.Endpoint);
Assert.Equal(options.Region, client.Config.Region);
Assert.Equal(options.AccessKey, client.Config.AccessKey);
Assert.Equal(options.SecretKey, client.Config.SecretKey);
Assert.Equal(options.SessionToken, client.Config.SessionToken);
}

public static void AssertSecure(MinioClient client)
public static void AssertSecure(IMinioClient client)
{
if (client is null)
{
throw new ArgumentNullException(nameof(client));
}
ArgumentNullException.ThrowIfNull(client);

var clientType = client.GetType();

var secure = (bool)clientType
.GetProperty("Secure", BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client)!;

Assert.True(secure);
Assert.True(client.Config.Secure);
}

public static void AssertTimeout(MinioClient client, int timeout)
public static void AssertTimeout(IMinioClient client, int timeout)
{
if (client is null)
{
throw new ArgumentNullException(nameof(client));
}

var clientType = client.GetType();
ArgumentNullException.ThrowIfNull(client);

var clientTimeout = (int)clientType
.GetField("RequestTimeout", BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client)!;

Assert.Equal(timeout, clientTimeout);
Assert.Equal(timeout, client.Config.RequestTimeout);
}

public static void AssertWebProxy(MinioClient client, IWebProxy webProxy)
public static void AssertWebProxy(IMinioClient client, IWebProxy webProxy)
{
if (client is null)
{
throw new ArgumentNullException(nameof(client));
}

var clientType = client.GetType();

var clientProxy = clientType
.GetProperty("Proxy", BindingFlags.Instance | BindingFlags.NonPublic)
?.GetValue(client) as IWebProxy;
ArgumentNullException.ThrowIfNull(client);

Assert.Equal(webProxy, clientProxy);
Assert.Equal(webProxy, client.Config.Proxy);
}
}
}
10 changes: 5 additions & 5 deletions tests/ServiceCollectionExtensionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void AddToServices()
{
Assert.Contains(services, x => x.ServiceType == typeof(IMinioClientFactory));
Assert.Contains(services, x => x.ServiceType == typeof(IConfigureOptions<MinioOptions>));
Assert.Contains(services, x => x.ServiceType == typeof(MinioClient));
Assert.Contains(services, x => x.ServiceType == typeof(IMinioClient));
}

[Fact]
Expand All @@ -37,7 +37,7 @@ public void GetFromServices()
var factory = serviceProvider.GetService<IMinioClientFactory>();
Assert.NotNull(factory);

var client = serviceProvider.GetService<MinioClient>();
var client = serviceProvider.GetService<IMinioClient>();
Assert.NotNull(client);

var options = serviceProvider.GetService<IOptions<MinioOptions>>()?.Value;
Expand All @@ -57,8 +57,8 @@ public void SameClients()
{
using var serviceProvider = services.BuildServiceProvider();

var client1 = serviceProvider.GetRequiredService<MinioClient>();
var client2 = serviceProvider.GetRequiredService<MinioClient>();
var client1 = serviceProvider.GetRequiredService<IMinioClient>();
var client2 = serviceProvider.GetRequiredService<IMinioClient>();

Assert.Same(client1, client2);
}
Expand All @@ -68,7 +68,7 @@ public void MultipleClients()
{
using var serviceProvider = services.BuildServiceProvider();

var client1 = serviceProvider.GetRequiredService<MinioClient>();
var client1 = serviceProvider.GetRequiredService<IMinioClient>();
using var client2 = serviceProvider.GetRequiredService<IMinioClientFactory>().CreateClient();

Assert.NotSame(client1, client2);
Expand Down
2 changes: 1 addition & 1 deletion tests/ServiceCollectionNamedExtensionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public void GetFromServices()
var factory = serviceProvider.GetService<IMinioClientFactory>();
Assert.NotNull(factory);

var client = serviceProvider.GetService<MinioClient>();
var client = serviceProvider.GetService<IMinioClient>();
Assert.NotNull(client);

var monitor = serviceProvider.GetRequiredService<IOptionsMonitor<MinioOptions>>();
Expand Down

0 comments on commit a34b7f9

Please sign in to comment.