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("[EMAIL PROTECTED]", 
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;
                }
 


Reply via email to