Skip to content

Commit 375f33e

Browse files
leebrandtjagregory
authored andcommitted
Added DB2 for the AS400 fluent configuration support
1 parent e275ed1 commit 375f33e

File tree

3 files changed

+128
-0
lines changed

3 files changed

+128
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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 DB2400ConfigurationTester
9+
{
10+
[Test]
11+
public void DB2400_should_default_to_the_DB2400_dialect()
12+
{
13+
DB2400Configuration.Standard.ToProperties()["dialect"].ShouldEqual("NHibernate.Dialect.DB2400Dialect, " + typeof(ISession).Assembly.FullName);
14+
}
15+
16+
[Test]
17+
public void DB2400_driver_should_default_to_the_DB2400_ClientDriver()
18+
{
19+
DB2400Configuration.Standard.ToProperties()["connection.driver_class"].ShouldEqual("NHibernate.Driver.DB2400Driver, " + typeof(ISession).Assembly.FullName);
20+
}
21+
22+
[Test]
23+
public void ConnectionString_is_added_to_the_configuration()
24+
{
25+
DB2400Configuration.Standard
26+
.ConnectionString(c => c
27+
.DataSource("db2400-srv")
28+
.UserID("toni tester")
29+
.Password("secret"))
30+
.ToProperties()["connection.connection_string"].ShouldEqual("DataSource=db2400-srv;UserID=toni tester;Password=secret;DataCompression=True;");
31+
}
32+
33+
[Test]
34+
public void ConnectionStringSetExplicitly()
35+
{
36+
DB2400Configuration.Standard
37+
.ConnectionString(c => c
38+
.Is("value"))
39+
.ToProperties().ShouldContain("connection.connection_string", "value");
40+
}
41+
42+
[Test]
43+
public void ConnectionStringSetFromAppSetting()
44+
{
45+
DB2400Configuration.Standard
46+
.ConnectionString(c => c
47+
.FromAppSetting("connectionString"))
48+
.ToProperties().ShouldContain("connection.connection_string", "a-connection-string");
49+
}
50+
51+
[Test]
52+
public void ConnectionStringSetFromConnectionStrings()
53+
{
54+
DB2400Configuration.Standard
55+
.ConnectionString(c => c
56+
.FromConnectionStringWithKey("main"))
57+
.ToProperties().ShouldContain("connection.connection_string", "connection string");
58+
}
59+
60+
[Test]
61+
public void ShouldBeAbleToSpecifyConnectionStringDirectly()
62+
{
63+
DB2400Configuration.Standard
64+
.ConnectionString("conn")
65+
.ToProperties().ShouldContain("connection.connection_string", "conn");
66+
}
67+
}
68+
}
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 DB2400Configuration : PersistenceConfiguration<DB2400Configuration, DB2400ConnectionStringBuilder>
7+
{
8+
protected DB2400Configuration()
9+
{
10+
Driver<DB2400Driver>();
11+
}
12+
13+
public static DB2400Configuration Standard
14+
{
15+
get { return new DB2400Configuration().Dialect<DB2400Dialect>(); }
16+
}
17+
}
18+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
namespace FluentNHibernate.Cfg.Db
2+
{
3+
public class DB2400ConnectionStringBuilder : ConnectionStringBuilder
4+
{
5+
string _dataSource;
6+
string _userID;
7+
string _password;
8+
9+
protected internal override string Create()
10+
{
11+
var connectionString = base.Create();
12+
13+
if (!string.IsNullOrEmpty(connectionString))
14+
return connectionString;
15+
16+
return string.Format("DataSource={0};UserID={1};Password={2};DataCompression=True;", _dataSource, _userID, _password);
17+
}
18+
19+
public DB2400ConnectionStringBuilder Password(string password)
20+
{
21+
_password = password;
22+
IsDirty = true;
23+
return this;
24+
}
25+
26+
public DB2400ConnectionStringBuilder UserID(string userID)
27+
{
28+
_userID = userID;
29+
IsDirty = true;
30+
return this;
31+
}
32+
33+
public DB2400ConnectionStringBuilder DataSource(string datasource)
34+
{
35+
_dataSource = datasource;
36+
IsDirty = true;
37+
return this;
38+
}
39+
40+
41+
}
42+
}

0 commit comments

Comments
 (0)