SPRNET-1301

Added support for runtime resolution of multiple concurrent NHibernate Session Factories
This commit is contained in:
sbohlen
2010-10-04 21:09:38 +00:00
parent b46a1b9a68
commit 78845eb327
10 changed files with 400 additions and 15 deletions

View File

@@ -0,0 +1,49 @@
using System;
using NUnit.Framework;
using NhCfg = NHibernate.Cfg;
using NHibernate;
using System.Collections;
using Spring.Data.Common;
using NHibernate.Dialect;
using Spring.Context.Support;
using NHibernate.Connection;
using NHibernate.Driver;
using Spring.Data.NHibernate.Bytecode;
namespace Spring.Data.NHibernate
{
[TestFixture]
public class DelegatingLocalSessionFactoryObjectTests
{
[Test]
public void CanSetConfigurationAndProperties()
{
IDbProvider dbProvider = DbProviderFactory.GetDbProvider("System.Data.SqlClient");
dbProvider.ConnectionString = "Data Source=(local);Database=Spring;Trusted_Connection=false";
DelegatingLocalSessionFactoryObject lsfo = new DelegatingLocalSessionFactoryObject();
lsfo.DbProvider = dbProvider;
lsfo.ApplicationContext = new StaticApplicationContext();
IDictionary properties = new Hashtable();
properties.Add(NhCfg.Environment.Dialect, typeof(MsSql2000Dialect).AssemblyQualifiedName);
properties.Add(NhCfg.Environment.ConnectionDriver, typeof(SqlClientDriver).AssemblyQualifiedName);
properties.Add(NhCfg.Environment.ConnectionProvider, typeof(DriverConnectionProvider).AssemblyQualifiedName);
properties.Add(NhCfg.Environment.Hbm2ddlKeyWords, "none");
lsfo.HibernateProperties = properties;
lsfo.AfterPropertiesSet();
Assert.IsNotNull(lsfo.Configuration);
Assert.AreEqual(lsfo.Configuration.Properties[NhCfg.Environment.ConnectionProvider], typeof(DriverConnectionProvider).AssemblyQualifiedName);
Assert.AreEqual(lsfo.Configuration.Properties[NhCfg.Environment.ConnectionDriver], typeof(SqlClientDriver).AssemblyQualifiedName);
Assert.AreEqual(lsfo.Configuration.Properties[NhCfg.Environment.Dialect], typeof(MsSql2000Dialect).AssemblyQualifiedName);
Assert.AreEqual(lsfo.Configuration.Properties[NhCfg.Environment.ProxyFactoryFactoryClass], typeof(ProxyFactoryFactory).AssemblyQualifiedName);
}
}
}

View File

@@ -98,6 +98,7 @@
<Link>Data\NHibernate\TestObject.cs</Link>
</Compile>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Data\NHibernate\DelegatingLocalSessionFactoryObjectTests.cs" />
<Compile Include="HibernateCompilerOptionsTests.cs" />
<Compile Include="HibernateExceptionTests.cs" />
</ItemGroup>