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); } }
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); }
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); }
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); }
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")); }
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")); }
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); }
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")); }
public void AdditionalResourceName() { IDbProvider provider = DbProviderFactory.GetDbProvider("Test-SqlServer-2.0"); Assert.IsNotNull(provider); }
public override void DoExecute() { object result = DbProviderFactory.GetDbProvider(providerName); Assert.IsNotNull(result); }