public void CreateOperations()
        {
            IDbProvider dbProvider = (IDbProvider)mocks.CreateMock(typeof(IDbProvider));
            IDbConnection mockConnection = (IDbConnection)mocks.CreateMock(typeof(IDbConnection));
            Expect.Call(dbProvider.CreateConnection()).Return(mockConnection).Repeat.Once();

            IDbCommand mockCommand = (IDbCommand)mocks.CreateMock(typeof(IDbCommand));
            Expect.Call(dbProvider.CreateCommand()).Return(mockCommand).Repeat.Once();

            IDbDataParameter mockParameter = (IDbDataParameter) mocks.CreateMock(typeof (IDbDataParameter));
            Expect.Call(dbProvider.CreateParameter()).Return(mockParameter).Repeat.Once();

            IDbDataAdapter mockDataAdapter = (IDbDataAdapter) mocks.CreateMock(typeof (IDbDataAdapter));
            Expect.Call(dbProvider.CreateDataAdapter()).Return(mockDataAdapter).Repeat.Once();

            DbCommandBuilder mockDbCommandBuilder = (DbCommandBuilder) mocks.CreateMock(typeof (DbCommandBuilder));
            Expect.Call(dbProvider.CreateCommandBuilder()).Return(mockDbCommandBuilder).Repeat.Once();

            Expect.Call(dbProvider.CreateParameterName("p1")).Return("@p1").Repeat.Once();
            Expect.Call(dbProvider.CreateParameterNameForCollection("c1")).Return("cc1");

            IDbMetadata mockDbMetaData = (IDbMetadata) mocks.CreateMock(typeof (IDbMetadata));
            Expect.Call(dbProvider.DbMetadata).Return(mockDbMetaData);

            Exception e = new Exception("foo");
            Expect.Call(dbProvider.ExtractError(e)).Return("badsql").Repeat.Once();
            DbException dbException = (DbException) mocks.CreateMock(typeof (DbException));

            MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider();
            IDictionary targetDbProviders = new Hashtable();
            targetDbProviders.Add("db1", dbProvider);
            multiDbProvider.DefaultDbProvider = dbProvider;
            multiDbProvider.TargetDbProviders = targetDbProviders;
            multiDbProvider.AfterPropertiesSet();

            mocks.ReplayAll();

            Assert.IsNotNull(multiDbProvider.CreateConnection());
            Assert.IsNotNull(multiDbProvider.CreateCommand());
            Assert.IsNotNull(multiDbProvider.CreateParameter());
            Assert.IsNotNull(multiDbProvider.CreateDataAdapter());
            Assert.IsNotNull(multiDbProvider.CreateCommandBuilder() as DbCommandBuilder);
            Assert.AreEqual("@p1", multiDbProvider.CreateParameterName("p1"));
            Assert.AreEqual("cc1", multiDbProvider.CreateParameterNameForCollection("c1"));
            Assert.IsNotNull(multiDbProvider.DbMetadata);
            Assert.AreEqual("badsql", multiDbProvider.ExtractError(e));
            Assert.IsTrue(multiDbProvider.IsDataAccessException(dbException));
            Assert.IsFalse(multiDbProvider.IsDataAccessException(e));
            mocks.VerifyAll();
        }
示例#2
0
        public void CreateOperations()
        {
            IDbProvider   dbProvider     = (IDbProvider)mocks.CreateMock(typeof(IDbProvider));
            IDbConnection mockConnection = (IDbConnection)mocks.CreateMock(typeof(IDbConnection));

            Expect.Call(dbProvider.CreateConnection()).Return(mockConnection).Repeat.Once();

            IDbCommand mockCommand = (IDbCommand)mocks.CreateMock(typeof(IDbCommand));

            Expect.Call(dbProvider.CreateCommand()).Return(mockCommand).Repeat.Once();

            IDbDataParameter mockParameter = (IDbDataParameter)mocks.CreateMock(typeof(IDbDataParameter));

            Expect.Call(dbProvider.CreateParameter()).Return(mockParameter).Repeat.Once();

            IDbDataAdapter mockDataAdapter = (IDbDataAdapter)mocks.CreateMock(typeof(IDbDataAdapter));

            Expect.Call(dbProvider.CreateDataAdapter()).Return(mockDataAdapter).Repeat.Once();
#if !NET_1_1
            DbCommandBuilder mockDbCommandBuilder = (DbCommandBuilder)mocks.CreateMock(typeof(DbCommandBuilder));
            Expect.Call(dbProvider.CreateCommandBuilder()).Return(mockDbCommandBuilder).Repeat.Once();
#endif

            Expect.Call(dbProvider.CreateParameterName("p1")).Return("@p1").Repeat.Once();
            Expect.Call(dbProvider.CreateParameterNameForCollection("c1")).Return("cc1");

            IDbMetadata mockDbMetaData = (IDbMetadata)mocks.CreateMock(typeof(IDbMetadata));
            Expect.Call(dbProvider.DbMetadata).Return(mockDbMetaData);

            Exception e = new Exception("foo");
            Expect.Call(dbProvider.ExtractError(e)).Return("badsql").Repeat.Once();
#if !NET_1_1
            DbException dbException = (DbException)mocks.CreateMock(typeof(DbException));
#endif


            MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider();
            IDictionary targetDbProviders             = new Hashtable();
            targetDbProviders.Add("db1", dbProvider);
            multiDbProvider.DefaultDbProvider = dbProvider;
            multiDbProvider.TargetDbProviders = targetDbProviders;
            multiDbProvider.AfterPropertiesSet();


            mocks.ReplayAll();

            Assert.IsNotNull(multiDbProvider.CreateConnection());
            Assert.IsNotNull(multiDbProvider.CreateCommand());
            Assert.IsNotNull(multiDbProvider.CreateParameter());
            Assert.IsNotNull(multiDbProvider.CreateDataAdapter());

#if !NET_1_1
            Assert.IsNotNull(multiDbProvider.CreateCommandBuilder() as DbCommandBuilder);
#endif
            Assert.AreEqual("@p1", multiDbProvider.CreateParameterName("p1"));
            Assert.AreEqual("cc1", multiDbProvider.CreateParameterNameForCollection("c1"));
            Assert.IsNotNull(multiDbProvider.DbMetadata);
            Assert.AreEqual("badsql", multiDbProvider.ExtractError(e));

#if !NET_1_1
            Assert.IsTrue(multiDbProvider.IsDataAccessException(dbException));
#endif
            Assert.IsFalse(multiDbProvider.IsDataAccessException(e));
            mocks.VerifyAll();
        }