示例#1
0
        public void CleanupConnectionsTest()
        {
            using (var pool = DbManagerTestSettings.CreateConnectionPool())
            {
                var manager = new DbManager(pool);
                var stack = new Stack<IPoolableDbConnection>();

                Assert.AreEqual(0, manager.ConnectionPool.LiveObjects);
                for (var i = 1; i < 20; i++)
                {
                    var item = manager.GetConnection();
                    stack.Push(item);
                    Assert.AreEqual(i, manager.ConnectionPool.LiveObjects, string.Format("Iteration {0}", i));
                }

                while (stack.Count > 0)
                {
                    var item = stack.Pop();
                    var start = manager.ConnectionPool.LiveObjects;
                    item.Dispose();
                    Assert.AreEqual(start - 1, manager.ConnectionPool.LiveObjects);
                }

                Assert.AreEqual(0, manager.ConnectionPool.LiveObjects);
            }
        }
示例#2
0
 public void ConnectionTest()
 {
     using (var pool = DbManagerTestSettings.CreateConnectionPool())
     {
         var manager = new DbManager(pool);
         for (var i = 0; i < 10; i++)
         {
             Assert.AreEqual(0, manager.ConnectionPool.LiveObjects, string.Format("Iteration {0}", i));
             IPoolableDbConnection pConn;
             IDbConnection conn;
             using (pConn = manager.GetConnection())
             {
                 Assert.AreEqual(1, manager.ConnectionPool.LiveObjects, string.Format("Iteration {0}", i));
                 conn = pConn.Connection;
                 Assert.IsNotNull(conn);
                 Assert.AreEqual(ConnectionState.Open, conn.State);
             }
             Assert.AreEqual(ConnectionState.Closed, conn.State);
         }
     }
 }