Beispiel #1
0
        private static void AssertOracleProvider(string providerName, string productName)
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider(providerName);

            Assert.AreEqual(productName, provider.DbMetadata.ProductName);

            var command = provider.CreateCommand();

            Assert.IsNotNull(command);

            // check if parameter has readable BindByName property
            var property = command.GetType().GetProperty("BindByName");

            if (property != null)
            {
                var bindByNameValue = property.GetValue(command, null);
                Assert.That(bindByNameValue, Is.EqualTo(provider.DbMetadata.BindByName), "BindByName had wrong value");
            }

            Assert.IsNotNull(provider.CreateCommandBuilder());
            Assert.IsNotNull(provider.CreateConnection());
            Assert.IsNotNull(provider.CreateDataAdapter());
            Assert.IsNotNull(provider.CreateParameter());
            Assert.AreEqual(":Foo", provider.CreateParameterName("Foo"));
        }
        public void NoDefaultProvided()
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider("System.Data.SqlClient");

            provider.ConnectionString = "connString1";
            MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider();
            IDictionary targetDbProviders             = new Hashtable();

            targetDbProviders.Add("db1", provider);
            multiDbProvider.TargetDbProviders = targetDbProviders;
            multiDbProvider.AfterPropertiesSet();
            try
            {
                Assert.AreEqual("connString1", multiDbProvider.ConnectionString);
                Assert.Fail("InvalidDataAccessApiUsageException should have been thrown");
            }
            catch (InvalidDataAccessApiUsageException exception)
            {
                Assert.AreEqual("No provider name found in thread local storage.  Consider setting the property DefaultDbProvider to fallback to a default value.", exception.Message);
            }
            finally
            {
                LogicalThreadContext.FreeNamedDataSlot(MultiDelegatingDbProvider.CURRENT_DBPROVIDER_SLOTNAME);
            }
        }
        public void FallbackToDefault()
        {
            IDbProvider provider1 = DbProviderFactory.GetDbProvider("System.Data.SqlClient");

            provider1.ConnectionString = "connString1";
            IDbProvider provider2 = DbProviderFactory.GetDbProvider("System.Data.SqlClient");

            provider2.ConnectionString = "connString2";
            MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider();
            IDictionary targetDbProviders             = new Hashtable();

            targetDbProviders.Add("db1", provider1);
            targetDbProviders.Add("db2", provider2);
            multiDbProvider.DefaultDbProvider = provider1;
            multiDbProvider.TargetDbProviders = targetDbProviders;
            multiDbProvider.AfterPropertiesSet();

            MultiDelegatingDbProvider.CurrentDbProviderName = "db314";
            try
            {
                Assert.AreEqual("connString1", multiDbProvider.ConnectionString);
            }
            finally
            {
                LogicalThreadContext.FreeNamedDataSlot(MultiDelegatingDbProvider.CURRENT_DBPROVIDER_SLOTNAME);
            }
        }
        public void NoMatchingProviderDefinedInThreadLocalStorage()
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider("System.Data.SqlClient");

            provider.ConnectionString = "connString1";
            MultiDelegatingDbProvider multiDbProvider = new MultiDelegatingDbProvider();
            IDictionary targetDbProviders             = new Hashtable();

            targetDbProviders.Add("db1", provider);
            multiDbProvider.TargetDbProviders = targetDbProviders;
            multiDbProvider.AfterPropertiesSet();
            try
            {
                MultiDelegatingDbProvider.CurrentDbProviderName = "db2";
                Assert.AreEqual("connString1", multiDbProvider.ConnectionString);
                Assert.Fail("InvalidDataAccessApiUsageException should have been thrown");
            }
            catch (InvalidDataAccessApiUsageException exception)
            {
                Assert.AreEqual("'db2' was not under the thread local key 'dbProviderName' and no default IDbProvider was set.", exception.Message);
            }
            finally
            {
                LogicalThreadContext.FreeNamedDataSlot(MultiDelegatingDbProvider.CURRENT_DBPROVIDER_SLOTNAME);
            }
        }
Beispiel #5
0
        public void TestSqlServer20Names()
        {
            //Initialize internal application context. factory
            DbProviderFactory.GetDbProvider("SqlServer-2.0");
            IApplicationContext ctx             = DbProviderFactory.ApplicationContext;
            IList <string>      dbProviderNames = ctx.GetObjectNamesForType(typeof(IDbProvider));

            Assert.IsTrue(dbProviderNames.Count > 0);
        }
Beispiel #6
0
        public void BadErrorExpression()
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider("Test-SqlServer-2.0-BadErrorCodeExpression");

            Assert.IsNotNull(provider);
            string errorCode = provider.ExtractError(new Exception("foo"));

            Assert.AreEqual("156", errorCode);
        }
Beispiel #7
0
        public void TestDb2()
        {
            //Initialize internal application context. factory
            DbProviderFactory.GetDbProvider("SqlServer-2.0");
            IApplicationContext ctx = DbProviderFactory.ApplicationContext;

            string[] dbProviderNames = ctx.GetObjectNamesForType(typeof(IDbProvider));
            Assert.IsTrue(dbProviderNames.Length > 0);
        }
        /// <summary>
        /// Create the actual provider instance as specified by this factory's configuration properties.
        /// </summary>
        /// <returns>the fully configured provider</returns>
        protected virtual IDbProvider CreateProviderInstance()
        {
            IDbProvider providerInstance = DbProviderFactory.GetDbProvider(Provider);

            if (connectionString != null)
            {
                providerInstance.ConnectionString = this.connectionString;
            }
            return(providerInstance);
        }
Beispiel #9
0
        public void DefaultInstanceWithOleDb40()
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider("OleDb-4.0");

            Assert.AreEqual("OleDb, provider V4.0.0.0 in framework .NET V4", provider.DbMetadata.ProductName);
            Assert.IsNotNull(provider.CreateCommand());
            Assert.IsNotNull(provider.CreateCommandBuilder());
            Assert.IsNotNull(provider.CreateConnection());
            Assert.IsNotNull(provider.CreateDataAdapter());
            Assert.IsNotNull(provider.CreateParameter());
            Assert.AreEqual("?", provider.CreateParameterName("Foo"));
        }
Beispiel #10
0
        public void DefaultInstanceWithMicrsoftOracleClient20()
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider("OracleClient-2.0");

            Assert.AreEqual("Oracle, Microsoft provider V2.0.0.0", provider.DbMetadata.ProductName);
            Assert.IsNotNull(provider.CreateCommand());
            Assert.IsNotNull(provider.CreateCommandBuilder());
            Assert.IsNotNull(provider.CreateConnection());
            Assert.IsNotNull(provider.CreateDataAdapter());
            Assert.IsNotNull(provider.CreateParameter());
            Assert.AreEqual(":Foo", provider.CreateParameterName("Foo"));
        }
Beispiel #11
0
        public void DefaultInstanceWithSqlServer40()
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider("SqlServer-4.0");

            AssertIsSqlServer40(provider);
            Assert.IsNull(provider.ConnectionString);
            Assert.IsNotNull(provider.CreateCommand());
            Assert.IsNotNull(provider.CreateCommandBuilder());
            Assert.IsNotNull(provider.CreateConnection());
            Assert.IsNotNull(provider.CreateDataAdapter());
            Assert.IsNotNull(provider.CreateParameter());
            Assert.AreEqual("@Foo", provider.CreateParameterName("Foo"));
        }
        public void SqlClient()
        {
            IDbProvider  dbProvider   = DbProviderFactory.GetDbProvider("System.Data.SqlClient");
            DbParameters dbParameters = new DbParameters(dbProvider);

            dbParameters.Add("p1", DbType.String);
            IDataParameter parameter = dbParameters[0];

            Assert.AreEqual("@p1", parameter.ParameterName);
            dbParameters.SetValue("p1", "foo");
            object springParameter = dbParameters.GetValue("p1");

            Assert.IsNotNull(springParameter);
            Assert.AreEqual("foo", springParameter);
        }
Beispiel #13
0
        public void DefaultInstanceWithSqlServer20()
        {
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
            //IApplicationContext ctx = DbProviderFactory.ApplicationContext;
            //Assert.IsNotNull(ctx);
            Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR", false);
            IDbProvider provider = DbProviderFactory.GetDbProvider("SqlServer-2.0");

            AssertIsSqlServer2005(provider);
            provider = DbProviderFactory.GetDbProvider("System.Data.SqlClient");
            AssertIsSqlServer2005(provider);
            Assert.IsNull(provider.ConnectionString);
            Assert.IsNotNull(provider.CreateCommand());
            Assert.IsNotNull(provider.CreateCommandBuilder());
            Assert.IsNotNull(provider.CreateConnection());
            Assert.IsNotNull(provider.CreateDataAdapter());
            Assert.IsNotNull(provider.CreateParameter());
            Assert.AreEqual("@Foo", provider.CreateParameterName("Foo"));
        }
Beispiel #14
0
        public void AdditionalResourceName()
        {
            IDbProvider provider = DbProviderFactory.GetDbProvider("Test-SqlServer-2.0");

            Assert.IsNotNull(provider);
        }
Beispiel #15
0
            public override void DoExecute()
            {
                object result = DbProviderFactory.GetDbProvider(providerName);

                Assert.IsNotNull(result);
            }