public void CreateOperations()
        {
            IDbProvider   dbProvider     = mocks.StrictMock <IDbProvider>();
            IDbConnection mockConnection = mocks.StrictMock <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     = A.Fake <IDbProvider>();
            IDbConnection mockConnection = A.Fake <IDbConnection>();

            A.CallTo(() => dbProvider.CreateConnection()).Returns(mockConnection).Once();

            IDbCommand mockCommand = A.Fake <IDbCommand>();

            A.CallTo(() => dbProvider.CreateCommand()).Returns(mockCommand).Once();

            IDbDataParameter mockParameter = A.Fake <IDbDataParameter>();

            A.CallTo(() => dbProvider.CreateParameter()).Returns(mockParameter).Once();

            IDbDataAdapter mockDataAdapter = A.Fake <IDbDataAdapter>();

            A.CallTo(() => dbProvider.CreateDataAdapter()).Returns(mockDataAdapter).Once();

            DbCommandBuilder mockDbCommandBuilder = A.Fake <DbCommandBuilder>();

            A.CallTo(() => dbProvider.CreateCommandBuilder()).Returns(mockDbCommandBuilder).Once();

            A.CallTo(() => dbProvider.CreateParameterName("p1")).Returns("@p1").Once();
            A.CallTo(() => dbProvider.CreateParameterNameForCollection("c1")).Returns("cc1");

            IDbMetadata mockDbMetaData = A.Fake <IDbMetadata>();

            A.CallTo(() => dbProvider.DbMetadata).Returns(mockDbMetaData);

            Exception e = new Exception("foo");

            A.CallTo(() => dbProvider.ExtractError(e)).Returns("badsql").Once();
            DbException dbException = A.Fake <DbException>();


            MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider();
            IDictionary targetDbProviders             = new Hashtable();

            targetDbProviders.Add("db1", dbProvider);
            multiDbProvider.DefaultDbProvider = dbProvider;
            multiDbProvider.TargetDbProviders = targetDbProviders;
            multiDbProvider.AfterPropertiesSet();

            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));
        }
        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();
        }