You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by gb...@apache.org on 2005/09/13 19:15:07 UTC

svn commit: r280595 - in /ibatis/trunk/cs/mapper: IBatisNet.Common/ IBatisNet.DataAccess.Test/NUnit/DaoTests/ IBatisNet.DataAccess/ IBatisNet.DataAccess/DaoSessionHandlers/ IBatisNet.DataMapper.Test/NUnit/SqlMapTests/ IBatisNet.DataMapper/

Author: gbayon
Date: Tue Sep 13 10:14:55 2005
New Revision: 280595

URL: http://svn.apache.org/viewcvs?rev=280595&view=rev
Log:
- Fixed IBATISNET-112

Modified:
    ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs

Modified: ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs Tue Sep 13 10:14:55 2005
@@ -73,6 +73,12 @@
 		void OpenConnection();
 
 		/// <summary>
+		/// Open a connection, on the specified connection string.
+		/// </summary>
+		/// <param name="connectionString">The connection string</param>
+		void OpenConnection(string connectionString);
+
+		/// <summary>
 		/// close a connection
 		/// </summary>
 		void CloseConnection();

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess.Test/NUnit/DaoTests/BaseDaoTest.cs Tue Sep 13 10:14:55 2005
@@ -51,6 +51,8 @@
 
 		#region Dao statement tests
 
+
+
 		/// <summary>
 		/// Verify that DaoManager.GetDao("Account")
 		/// return an object that implemetent the interface IAccountDao.
@@ -66,6 +68,37 @@
 			Assert.IsTrue(type.IsInstanceOfType(accountDao));
 		}
 
+		/// <summary>
+		/// Test Open connection with a connection string
+		/// </summary>
+		[Test]
+		public void TestOpenConnection()
+		{
+			IAccountDao accountDao = (IAccountDao) daoManager[typeof (IAccountDao)];
+
+
+			Account account = NewAccount();
+
+			try
+			{
+				daoManager.OpenConnection(daoManager.LocalDataSource.ConnectionString);
+				accountDao.Create(account);
+
+				account = accountDao.GetAccountById(1001);
+			}
+			catch (Exception e)
+			{
+				// Ignore
+				Console.WriteLine("TestCreateAccount, error cause : " + e.Message);
+			}
+			finally
+			{
+				daoManager.CloseConnection();
+			}
+
+			Assert.IsNotNull(account);
+			Assert.AreEqual("Calamity.Jane@somewhere.com", account.EmailAddress);
+		}
 
 		/// <summary>
 		/// Test CreateAccount

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoManager.cs Tue Sep 13 10:14:55 2005
@@ -412,6 +412,27 @@
 		}
 
 		/// <summary>
+		/// Open a connection, on the specified connection string.
+		/// </summary>
+		/// <param name="connectionString">The connection string</param>
+		public IDalSession OpenConnection(string connectionString)
+		{
+			if (_daoSessionHandler== null) 
+			{
+				throw new DataAccessException("DaoManager could not get DaoSession.  DaoSessionPool was null (possibly not configured).");
+			}
+			if (_sessionHolder.LocalSession != null) 
+			{
+				throw new DataAccessException("DaoManager could not invoke OpenConnection(). A connection is already started. Call CloseConnection first.");
+			}
+			IDalSession session = _daoSessionHandler.GetDaoSession(this);
+			_sessionHolder.Store(session);
+			session.OpenConnection(connectionString);
+			return session;	
+
+		}
+
+		/// <summary>
 		/// Close a connection
 		/// </summary>
 		public void CloseConnection()

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs Tue Sep 13 10:14:55 2005
@@ -99,6 +99,12 @@
 		public abstract void OpenConnection();
 
 		/// <summary>
+		/// Open a connection, on the specified connection string.
+		/// </summary>
+		/// <param name="connectionString">The connection string</param>
+		public abstract void OpenConnection(string connectionString);
+
+		/// <summary>
 		/// Closes the connection
 		/// </summary>
 		public abstract void CloseConnection();

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs Tue Sep 13 10:14:55 2005
@@ -127,10 +127,19 @@
 		/// </summary>
 		public override void OpenConnection()
 		{
+			this.OpenConnection(_dataSource.ConnectionString);
+		}
+
+		/// <summary>
+		/// Open a connection, on the specified connection string.
+		/// </summary>
+		/// <param name="connectionString">The connection string</param>
+		public override void OpenConnection(string connectionString)
+		{
 			if (_connection == null)
 			{
 				_connection =  _dataSource.Provider.GetConnection();
-				_connection.ConnectionString = _dataSource.ConnectionString;
+				_connection.ConnectionString = connectionString;
 				try
 				{
 					_connection.Open();

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs Tue Sep 13 10:14:55 2005
@@ -114,12 +114,22 @@
 		}
 
 		/// <summary>
+		/// Open a connection, on the specified connection string.
+		/// </summary>
+		/// <param name="connectionString">The connection string</param>
+		public override void OpenConnection(string connectionString)
+		{
+			_sqlMap.OpenConnection(connectionString);
+		}
+
+		/// <summary>
 		/// Closes the connection
 		/// </summary>
 		public override void CloseConnection()
 		{
 			_sqlMap.CloseConnection();
 		}
+
 
 		/// <summary>
 		/// Begins a transaction.

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper.Test/NUnit/SqlMapTests/StatementTest.cs Tue Sep 13 10:14:55 2005
@@ -44,6 +44,19 @@
 		#region Object Query tests
 
 		/// <summary>
+		/// Test Open connection with a connection string
+		/// </summary>
+		[Test]
+		public void TestOpenConnection()
+		{
+			sqlMap.OpenConnection(sqlMap.DataSource.ConnectionString);
+			Account account = sqlMap.QueryForObject("SelectWithProperty", null) as Account;
+			sqlMap.CloseConnection();
+
+			AssertAccount1(account);
+		}
+
+		/// <summary>
 		/// Test use a statement with property subtitution
 		/// (JIRA 22)
 		/// </summary>

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs Tue Sep 13 10:14:55 2005
@@ -145,10 +145,19 @@
 		/// </summary>
 		public void OpenConnection()
 		{
+			this.OpenConnection(_dataSource.ConnectionString);
+		}
+
+		/// <summary>
+		/// Open a connection, on the specified connection string.
+		/// </summary>
+		/// <param name="connectionString">The connection string</param>
+		public void OpenConnection(string connectionString)
+		{
 			if (_connection == null)
 			{
 				_connection =  _dataSource.Provider.GetConnection();
-				_connection.ConnectionString = _dataSource.ConnectionString;
+				_connection.ConnectionString = connectionString;
 				try
 				{
 					_connection.Open();

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
URL: http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?rev=280595&r1=280594&r2=280595&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Tue Sep 13 10:14:55 2005
@@ -277,7 +277,7 @@
 		#region Manage Connection, Transaction
 		
 		/// <summary>
-		/// 
+		/// Open a connection
 		/// </summary>
 		/// <returns></returns>
 		public IDalSession OpenConnection() 
@@ -289,6 +289,22 @@
 			SqlMapSession session = new SqlMapSession(this);
 			_sessionHolder.Store(session);
 			session.OpenConnection();
+			return session;
+		}
+
+		/// <summary>
+		/// Open a connection, on the specified connection string.
+		/// </summary>
+		/// <param name="connectionString">The connection string</param>
+		public IDalSession OpenConnection(string connectionString)
+		{
+			if (_sessionHolder.LocalSession != null) 
+			{
+				throw new DataMapperException("SqlMap could not invoke OpenConnection(). A connection is already started. Call CloseConnection first.");
+			}
+			SqlMapSession session = new SqlMapSession(this);
+			_sessionHolder.Store(session);
+			session.OpenConnection(connectionString);
 			return session;
 		}