Skip to content

Commit aa748e1

Browse files
committed
[#481] [add] impl
1 parent c77c3e4 commit aa748e1

File tree

4 files changed

+65
-0
lines changed

4 files changed

+65
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using Microsoft.Extensions.Configuration;
2+
using NUnit.Framework;
3+
4+
namespace Simplify.FluentNHibernate.Tests;
5+
6+
[TestFixture]
7+
public class SessionFactoryBuilderBaseTests
8+
{
9+
private IConfiguration _configuration;
10+
11+
[SetUp]
12+
public void Initialize()
13+
{
14+
_configuration = new ConfigurationBuilder()
15+
.AddJsonFile("appsettings.json", false)
16+
.Build();
17+
}
18+
19+
[Test]
20+
public void ConnectionString_MsSql_CorrectConnectionString()
21+
{
22+
// Assign
23+
var builder = new TestSessionFactoryBuilder(_configuration).Build();
24+
25+
// Act
26+
var result = builder.ConnectionString;
27+
28+
// Assert
29+
Assert.AreEqual("Data Source=localhost;Initial Catalog=foodatabase;Integrated Security=False;User ID=foouser;Password=foopassword", result);
30+
}
31+
}

src/Simplify.FluentNHibernate.Tests/Simplify.FluentNHibernate.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
<PackageReference Include="NUnit" Version="3.13.*" />
1818
<PackageReference Include="NUnit3TestAdapter" Version="4.3.*" />
1919
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.*" />
20+
<PackageReference Include="System.Data.SqlClient" Version="4.8.5" />
2021
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.117.*" />
2122
</ItemGroup>
2223
<ItemGroup>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using FluentNHibernate.Cfg;
2+
using Microsoft.Extensions.Configuration;
3+
4+
namespace Simplify.FluentNHibernate.Tests;
5+
6+
public class TestSessionFactoryBuilder : SessionFactoryBuilderBase
7+
{
8+
public TestSessionFactoryBuilder(IConfiguration configuration) : base(configuration, "DatabaseConnectionSettings")
9+
{
10+
}
11+
12+
public override FluentConfiguration CreateConfiguration()
13+
{
14+
var config = FluentConfiguration.InitializeFromConfigMsSql(Configuration, ConfigSectionName);
15+
16+
config.AddMappingsFromAssemblyOf<TestSessionFactoryBuilder>();
17+
18+
return config;
19+
}
20+
}

src/Simplify.FluentNHibernate/SessionFactoryBuilderBase.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,14 @@ protected SessionFactoryBuilderBase(IConfiguration configuration, string configS
2525
ConfigSectionName = configSectionName;
2626
}
2727

28+
/// <summary>
29+
/// Gets the connection string.
30+
/// </summary>
31+
/// <value>
32+
/// The connection string.
33+
/// </value>
34+
public string ConnectionString { get; private set; }
35+
2836
/// <summary>
2937
/// Gets or sets the session factory.
3038
/// </summary>
@@ -64,6 +72,11 @@ public virtual SessionFactoryBuilderBase Build()
6472
{
6573
var configuration = CreateConfiguration();
6674

75+
FluentConfiguration.ExposeConfiguration(c =>
76+
{
77+
ConnectionString = c.GetProperty(NHibernate.Cfg.Environment.ConnectionString);
78+
});
79+
6780
Instance = configuration.BuildSessionFactory();
6881

6982
return this;

0 commit comments

Comments
 (0)