Skip to content

Commit

Permalink
Merge pull request #11 from Syrx/2.3.0
Browse files Browse the repository at this point in the history
Updates for 2.3.0
  • Loading branch information
sextondjc authored Nov 22, 2024
2 parents 0090c3d + 169b08f commit 0674822
Show file tree
Hide file tree
Showing 21 changed files with 315 additions and 115 deletions.
20 changes: 15 additions & 5 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,28 @@
<!-- Treat all warnings as errors -->
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>




<!-- ============================================================================ -->
<!-- packaging info -->
<!-- ============================================================================ -->
<Version>2.2.0</Version>
<Version>2.3.0</Version>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<EnablePackageValidation>true</EnablePackageValidation>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageTags>syrx;data access;orm;micro-orm</PackageTags>
<PackageReleaseNotes>Updated to .NET8.0.</PackageReleaseNotes>
<PackageReleaseNotes>
# Minor release
## Syrx.Commanders.Databases.Settings.Readers
* Removed redundant references.

## Syrx.Commander.Databases.Settings.Extensions
* Marked Evalute method as private.

## Syrx.Commanders.Databases.Settings.Extensions.Json
* Added `UseFile` extension method to provide better syntactic support.

## Syrx.Commanders.Databases.Settings.Extensions.Xml
* Added `UseFile` extension method to provide better syntactic support.
</PackageReleaseNotes>

<!-- ============================================================================ -->
<!-- organization info -->
Expand Down
12 changes: 12 additions & 0 deletions Syrx.Commanders.Databases.sln
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Syrx.Commanders.Databases.T
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Syrx.Commanders.Databases.Tests.Unit", "tests\unit\Syrx.Commanders.Databases.Tests.Unit\Syrx.Commanders.Databases.Tests.Unit.csproj", "{71185BE7-919D-4E24-AC2F-86B95B6457CD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{383C4438-FEB7-4797-90D1-8C9DC20FB2A5}"
ProjectSection(SolutionItems) = preProject
.github\dependabot.yml = .github\dependabot.yml
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{6C8F7C7B-BAEA-4918-A204-1C91BCF0651D}"
ProjectSection(SolutionItems) = preProject
.github\workflows\publish.yml = .github\workflows\publish.yml
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -196,5 +206,7 @@ Global
{024675DD-4FC1-41D2-AD34-C83D3E767A17} = {5B0FA313-655F-466D-8376-E126871A30E2}
{512E9A90-AD79-4497-9526-BF1076A11DCF} = {5B0FA313-655F-466D-8376-E126871A30E2}
{71185BE7-919D-4E24-AC2F-86B95B6457CD} = {5B0FA313-655F-466D-8376-E126871A30E2}
{383C4438-FEB7-4797-90D1-8C9DC20FB2A5} = {62B696A9-D903-4211-AE85-C1198FF372E4}
{6C8F7C7B-BAEA-4918-A204-1C91BCF0651D} = {383C4438-FEB7-4797-90D1-8C9DC20FB2A5}
EndGlobalSection
EndGlobal
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using static Syrx.Validation.Contract;

namespace Syrx.Commanders.Databases.Settings.Extensions.Json
{
public static class ServiceCollectionExtensions
{
{
//[Obsolete("This method is deprecated and will be removed in the 3.0.0 version.", true)]
public static IServiceCollection AddSyrxJsonFile(
this IServiceCollection services,
IConfigurationBuilder builder,
Expand All @@ -17,6 +17,8 @@ public static IServiceCollection AddSyrxJsonFile(

builder?.AddJsonFile(fileName);
return services;
}
}
}


}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Syrx.Extensions" Version="2.*" />
<PackageReference Include="Syrx.Validation" Version="2.*" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Microsoft.Extensions.Configuration;
using Syrx.Extensions;
using static Syrx.Validation.Contract;

namespace Syrx.Commanders.Databases.Settings.Extensions.Json
{
public static class UseFileExtensions
{
public static SyrxBuilder UseFile(this SyrxBuilder factory, string fileName, IConfigurationBuilder builder)
{
Throw<ArgumentNullException>(builder != null, $"ConfigurationBuilder is null! Check bootstrap.");
Throw<ArgumentNullException>(!string.IsNullOrWhiteSpace(fileName), nameof(fileName));

builder?.AddJsonFile(fileName);

return factory;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
namespace Syrx.Commanders.Databases.Settings.Extensions.Xml
{
public static class ServiceCollectionExtensions
{
{
//[Obsolete("This method is deprecated and will be removed in the 3.0.0 version.", false)]
public static IServiceCollection AddSyrxXmlFile(
this IServiceCollection services,
IConfigurationBuilder builder,
Expand All @@ -17,5 +18,5 @@ public static IServiceCollection AddSyrxXmlFile(
builder?.AddXmlFile(fileName);
return services;
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Configuration.Xml" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Syrx.Extensions" Version="2.*" />
<PackageReference Include="Syrx.Validation" Version="2.*" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
using Microsoft.Extensions.Configuration;
using Syrx.Extensions;
using static Syrx.Validation.Contract;

namespace Syrx.Commanders.Databases.Settings.Extensions.Xml
{
public static class UseFileExtensions
{
public static SyrxBuilder UseFile(this SyrxBuilder factory, string fileName, IConfigurationBuilder builder)
{
Throw<ArgumentNullException>(builder != null, $"ConfigurationBuilder is null! Check bootstrap.");
Throw<ArgumentNullException>(!string.IsNullOrWhiteSpace(fileName), nameof(fileName));

builder?.AddXmlFile(fileName);

return factory;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ public CommanderSettingsBuilder AddCommand(NamespaceSetting options)
return this;
}

public void Evaluate(NamespaceSetting option)
private void Evaluate(NamespaceSetting option)
{
// pretty sure this can be done more elegantly.
if (_settings.TryGetValue(option.Namespace, out var ns))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>This package adds support for reading settings for Database Commanders from configuration sources.</Description>
<PackageTags>syrx;data access;orm;micro-orm</PackageTags>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="9.0.0" />
<PackageReference Include="Microsoft.Extensions.Options" Version="9.0.0" />
<PackageReference Include="Syrx.Readers" Version="2.*" />
</ItemGroup>

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<Description>This package adds support for reading settings for Database Commanders from configuration sources.</Description>
<PackageTags>syrx;data access;orm;micro-orm</PackageTags>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Syrx.Readers" Version="2.*" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Syrx.Commanders.Databases.Settings\Syrx.Commanders.Databases.Settings.csproj" />
</ItemGroup>

</Project>
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Syrx.Commanders.Databases.Settings;
using Syrx.Commanders.Databases.Tests.Extensions;
using System.Data;
using System.Data.Common;
using static Xunit.Assert;

namespace Syrx.Commanders.Databases.Connectors.Extensions.Tests.Unit.ServiceCollectionExtensionsTests
Expand Down Expand Up @@ -34,37 +31,4 @@ public IDbConnection CreateConnection(CommandSetting options)
}

}

public class AddProvider
{
private readonly IServiceCollection _services;

public AddProvider()
{
_services = new ServiceCollection();
}

[Fact]
public void NullProviderThrowsArgumentNullException()
{
var result = Throws<ArgumentNullException>(() => _services.AddProvider(null));
result.HasMessage("The DbProviderFactory delegate cannot be null. (Parameter 'providerFactory')");
}

[Fact]
public void Successfully()
{
var connection = new Mock<DbConnection>();
var dbProviderFactory = new Mock<DbProviderFactory>();
dbProviderFactory.Setup(x => x.CreateConnection()).Returns(connection.Object);

Func<DbProviderFactory> factory = () => dbProviderFactory.Object;
var result = _services.AddProvider(factory);

var provider = _services.BuildServiceProvider();
var resolved = provider.GetService<Func<DbProviderFactory>>();
NotNull(resolved);
Same(factory, resolved);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Syrx.Commanders.Databases.Tests.Extensions;
using System.Data.Common;
using static Xunit.Assert;

namespace Syrx.Commanders.Databases.Connectors.Extensions.Tests.Unit.ServiceCollectionExtensionsTests
{
public class AddProvider
{
private readonly IServiceCollection _services;

public AddProvider()
{
_services = new ServiceCollection();
}

[Fact]
public void NullProviderThrowsArgumentNullException()
{
var result = Throws<ArgumentNullException>(() => _services.AddProvider(null));
result.HasMessage("The DbProviderFactory delegate cannot be null. (Parameter 'providerFactory')");
}

[Fact]
public void Successfully()
{
var connection = new Mock<DbConnection>();
var dbProviderFactory = new Mock<DbProviderFactory>();
dbProviderFactory.Setup(x => x.CreateConnection()).Returns(connection.Object);

Func<DbProviderFactory> factory = () => dbProviderFactory.Object;
var result = _services.AddProvider(factory);

var provider = _services.BuildServiceProvider();
var resolved = provider.GetService<Func<DbProviderFactory>>();
NotNull(resolved);
Same(factory, resolved);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ public JsonFileFixture()
ConfigurationBuilder = new ConfigurationBuilder();
}

public string WriteToFile(CommanderSettings options)
public string WriteToFile(CommanderSettings options, string path = null)
{
var path = FileName;
path = path ?? FileName;
File.WriteAllText(path, options.Serialize());
return path;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,17 @@ public class AddSyrxJsonFile(JsonFileFixture fixture) : IClassFixture<JsonFileFi
[Fact]
public void Successfully()
{
var services = fixture.Services;
var services = fixture.Services;
var builder = fixture.ConfigurationBuilder;

// write file
var settings = fixture.GetTestOptions<AddSyrxJsonFile>();
var filename = fixture.WriteToFile(settings);

// act
services.AddSyrxJsonFile(builder, filename);


// finalze build
services.AddSyrxJsonFile(builder, filename);

// finalze build
var configuration = builder.Build();
var provider = services.BuildServiceProvider();
var resolved = configuration.Get<CommanderSettings>();
Expand All @@ -34,8 +33,10 @@ public void Successfully()
Equal(settings.Namespaces.Single().Namespace, resolved.Namespaces.Single().Namespace);
Single(resolved.Namespaces.Single().Types);
Equal(settings.Namespaces.Single().Types.Single().Name, resolved.Namespaces.Single().Types.Single().Name);
Equal(2, resolved.Namespaces.Single().Types.Single().Commands.Count);
Equal(2, resolved.Namespaces.Single().Types.Single().Commands.Count);

Equivalent(settings, resolved);

}
}
}
}
}
Loading

0 comments on commit 0674822

Please sign in to comment.