Skip to content

Commit 399797e

Browse files
committed
add ingres configuration and tester
1 parent 8ddda12 commit 399797e

File tree

5 files changed

+153
-0
lines changed

5 files changed

+153
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using FluentNHibernate.Cfg.Db;
2+
using NHibernate;
3+
using NUnit.Framework;
4+
5+
namespace FluentNHibernate.Testing.Cfg.Db
6+
{
7+
[TestFixture]
8+
public class IngresConfigurationTester
9+
{
10+
[Test]
11+
public void Ingres_should_default_to_the_Ingres_dialect()
12+
{
13+
IngresConfiguration.Standard.ToProperties()["dialect"].ShouldEqual("NHibernate.Dialect.IngresDialect, " + typeof(ISession).Assembly.FullName);
14+
}
15+
16+
[Test]
17+
public void Ingres_driver_should_default_to_the_Ingres_ClientDriver()
18+
{
19+
IngresConfiguration.Standard.ToProperties()["connection.driver_class"].ShouldEqual("NHibernate.Driver.IngresDriver, " + typeof(ISession).Assembly.FullName);
20+
}
21+
22+
[Test]
23+
public void ConnectionString_is_added_to_the_configuration()
24+
{
25+
IngresConfiguration.Standard
26+
.ConnectionString(c => c
27+
.Server("host")
28+
.Database("vnode::db")
29+
.Port("ii7")
30+
.Username("tester")
31+
.Password("secret"))
32+
.ToProperties()["connection.connection_string"].ShouldEqual("Host=host;Database=vnode::db;Port=ii7;User ID=tester;PWD=secret");
33+
}
34+
35+
[Test]
36+
public void ConnectionStringSetExplicitly()
37+
{
38+
IngresConfiguration.Standard
39+
.ConnectionString(c => c
40+
.Is("value"))
41+
.ToProperties().ShouldContain("connection.connection_string", "value");
42+
}
43+
44+
[Test]
45+
public void ConnectionStringSetFromAppSetting()
46+
{
47+
IngresConfiguration.Standard
48+
.ConnectionString(c => c
49+
.FromAppSetting("connectionString"))
50+
.ToProperties().ShouldContain("connection.connection_string", "a-connection-string");
51+
}
52+
53+
[Test]
54+
public void ConnectionStringSetFromConnectionStrings()
55+
{
56+
IngresConfiguration.Standard
57+
.ConnectionString(c => c
58+
.FromConnectionStringWithKey("main"))
59+
.ToProperties().ShouldContain("connection.connection_string", "connection string");
60+
}
61+
62+
[Test]
63+
public void ShouldBeAbleToSpecifyConnectionStringDirectly()
64+
{
65+
IngresConfiguration.Standard
66+
.ConnectionString("conn")
67+
.ToProperties().ShouldContain("connection.connection_string", "conn");
68+
}
69+
}
70+
}

src/FluentNHibernate.Testing/FluentNHibernate.Testing.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@
123123
<Compile Include="AutoMapping\Overrides\ParentOverridesWithSubclasses.cs" />
124124
<Compile Include="AutoMapping\UnionSubclassConventionTests.cs" />
125125
<Compile Include="AutoMapping\UnionSubclassTests.cs" />
126+
<Compile Include="Cfg\Db\IngresConfigurationTester.cs" />
126127
<Compile Include="StubTypeSource.cs" />
127128
<Compile Include="AutoMapping\TestFixtures.cs" />
128129
<Compile Include="Cfg\Db\DB2ConfigurationTester.cs" />
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using NHibernate.Dialect;
2+
using NHibernate.Driver;
3+
4+
namespace FluentNHibernate.Cfg.Db
5+
{
6+
public class IngresConfiguration : PersistenceConfiguration<IngresConfiguration, IngresConnectionStringBuilder>
7+
{
8+
protected IngresConfiguration()
9+
{
10+
Driver<IngresDriver>();
11+
}
12+
13+
public static IngresConfiguration Standard
14+
{
15+
get { return new IngresConfiguration().Dialect<IngresDialect>(); }
16+
}
17+
}
18+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
using System.Text;
2+
3+
namespace FluentNHibernate.Cfg.Db
4+
{
5+
public class IngresConnectionStringBuilder : ConnectionStringBuilder
6+
{
7+
private string server;
8+
private string database;
9+
private string port;
10+
private string username;
11+
private string password;
12+
13+
public IngresConnectionStringBuilder Server(string server)
14+
{
15+
this.server = server;
16+
IsDirty = true;
17+
return this;
18+
}
19+
20+
public IngresConnectionStringBuilder Database(string database)
21+
{
22+
this.database = database;
23+
IsDirty = true;
24+
return this;
25+
}
26+
27+
public IngresConnectionStringBuilder Port(string port)
28+
{
29+
this.port = port;
30+
IsDirty = true;
31+
return this;
32+
}
33+
34+
public IngresConnectionStringBuilder Username(string username)
35+
{
36+
this.username = username;
37+
IsDirty = true;
38+
return this;
39+
}
40+
41+
public IngresConnectionStringBuilder Password(string password)
42+
{
43+
this.password = password;
44+
IsDirty = true;
45+
return this;
46+
}
47+
48+
protected internal override string Create()
49+
{
50+
var connectionString = base.Create();
51+
52+
if (!string.IsNullOrEmpty(connectionString))
53+
return connectionString;
54+
55+
var sb = new StringBuilder();
56+
57+
sb.AppendFormat("Host={0};Database={1};Port={2};User ID={3};PWD={4}", server, database, port, username, password);
58+
59+
return sb.ToString();
60+
}
61+
}
62+
}

src/FluentNHibernate/FluentNHibernate.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@
123123
<Compile Include="Automapping\Steps\HasManyToManyStep.cs" />
124124
<Compile Include="Automapping\Steps\CollectionStep.cs" />
125125
<Compile Include="Automapping\Steps\IAutomappingStep.cs" />
126+
<Compile Include="Cfg\Db\IngresConfiguration.cs" />
127+
<Compile Include="Cfg\Db\IngresConnectionStringBuilder.cs" />
126128
<Compile Include="CombinedAssemblyTypeSource.cs" />
127129
<Compile Include="Conventions\Inspections\IKeyManyToOneInspector.cs" />
128130
<Compile Include="Conventions\Inspections\IKeyPropertyInspector.cs" />

0 commit comments

Comments
 (0)