private static async Task Main() { var commandFactory = new DbCommandFactory($"[System-Data-SqlClient-NetFx2.0-Test-{Guid.NewGuid():N}]"); var cts = new CancellationTokenSource(); var sqlCommandExecutor = new SqlCommandExecutor20Adapter(new SqlCommandExecutor20()); var dbCommandClassExecutor = new DbCommandClassExecutor20Adapter(new DbCommandClassExecutor20()); var dbCommandInterfaceExecutor = new DbCommandInterfaceExecutor20Adapter(new DbCommandInterfaceExecutor20()); var dbCommandInterfaceGenericExecutor = new DbCommandInterfaceGenericExecutor20Adapter <SqlCommand>(new DbCommandInterfaceGenericExecutor20 <SqlCommand>()); using (var connection = OpenConnection()) { await RelationalDatabaseTestHarness.RunAllAsync( connection, commandFactory, cts.Token, sqlCommandExecutor, dbCommandClassExecutor, dbCommandInterfaceExecutor, dbCommandInterfaceGenericExecutor); } // allow time to flush await Task.Delay(2000, cts.Token); }
private static async Task Main() { var commandFactory = new DbCommandFactory($"\"Npgsql-Test-{Guid.NewGuid():N}\""); var commandExecutor = new NpgsqlCommandExecutor(); var cts = new CancellationTokenSource(); // Use the connection type that is loaded by the runtime through the typical loading algorithm using (var connection = OpenConnection(typeof(NpgsqlConnection))) { await RelationalDatabaseTestHarness.RunAllAsync <NpgsqlCommand>(connection, commandFactory, commandExecutor, cts.Token); } // Test the result when the ADO.NET provider assembly is loaded through Assembly.LoadFile // On .NET Core this results in a new assembly being loaded whose types are not considered the same // as the types loaded through the default loading mechanism, potentially causing type casting issues in CallSite instrumentation var loadFileType = AssemblyHelpers.LoadFileAndRetrieveType(typeof(NpgsqlConnection)); using (var connection = OpenConnection(loadFileType)) { // Do not use the strongly typed SqlCommandExecutor because the type casts will fail await RelationalDatabaseTestHarness.RunBaseClassesAsync(connection, commandFactory, cts.Token); } // allow time to flush await Task.Delay(2000, cts.Token); }
private static async Task Main() { var commandFactory = new DbCommandFactory($"[Microsoft-Data-SqlClient-Test-{Guid.NewGuid():N}]"); var commandExecutor = new MicrosoftSqlCommandExecutor(); var cts = new CancellationTokenSource(); using (var connection = OpenConnection(typeof(SqlConnection))) { await RelationalDatabaseTestHarness.RunAllAsync <SqlCommand>(connection, commandFactory, commandExecutor, cts.Token); } // Version 4.0.0 causes a hard crash #if !SQLCLIENT_4 // Test the result when the ADO.NET provider assembly is loaded through Assembly.LoadFile // On .NET Core this results in a new assembly being loaded whose types are not considered the same // as the types loaded through the default loading mechanism, potentially causing type casting issues in CallSite instrumentation var loadFileType = AssemblyHelpers.LoadFileAndRetrieveType(typeof(SqlConnection)); using (var connection = OpenConnection(loadFileType)) { // Do not use the strongly typed SqlCommandExecutor because the type casts will fail await RelationalDatabaseTestHarness.RunBaseClassesAsync(connection, commandFactory, cts.Token); } #endif // allow time to flush await Task.Delay(2000, cts.Token); }
private static async Task Main() { using (var root = Tracer.Instance.StartActive("root")) { using (var connection = CreateConnection()) { var testQueries = new RelationalDatabaseTestHarness <SqlConnection, SqlCommand, SqlDataReader>( connection, command => command.ExecuteNonQuery(), command => command.ExecuteScalar(), command => command.ExecuteReader(), (command, behavior) => command.ExecuteReader(behavior), command => command.ExecuteNonQueryAsync(), command => command.ExecuteScalarAsync(), command => command.ExecuteReaderAsync(), (command, behavior) => command.ExecuteReaderAsync(behavior) ); await testQueries.RunAsync(); } using (var connection = CreateConnection()) { var testQueries = new RelationalDatabaseTestHarness <DbConnection, DbCommand, DbDataReader>( connection, command => command.ExecuteNonQuery(), command => command.ExecuteScalar(), command => command.ExecuteReader(), (command, behavior) => command.ExecuteReader(behavior), command => command.ExecuteNonQueryAsync(), command => command.ExecuteScalarAsync(), command => command.ExecuteReaderAsync(), (command, behavior) => command.ExecuteReaderAsync(behavior) ); await testQueries.RunAsync(); } using (var connection = CreateConnection()) { var testQueries = new RelationalDatabaseTestHarness <IDbConnection, IDbCommand, IDataReader>( connection, command => command.ExecuteNonQuery(), command => command.ExecuteScalar(), command => command.ExecuteReader(), (command, behavior) => command.ExecuteReader(behavior), executeNonQueryAsync: null, executeScalarAsync: null, executeReaderAsync: null, executeReaderWithBehaviorAsync: null ); await testQueries.RunAsync(); } } }
private static async Task Main() { /* TODO: enable this after adding a MySql-specific integration * using (var connection = CreateConnection()) * { * var testQueries = new RelationalDatabaseTestHarness<MySqlConnection, MySqlCommand, MySqlDataReader>( * connection, * command => command.ExecuteNonQuery(), * command => command.ExecuteScalar(), * command => command.ExecuteReader(), * (command, behavior) => command.ExecuteReader(behavior), * command => command.ExecuteNonQueryAsync(), * command => command.ExecuteScalarAsync(), * executeReaderAsync: null, * executeReaderWithBehaviorAsync: null * ); * * * await testQueries.RunAsync(); * } */ using (var connection = CreateConnection()) { var testQueries = new RelationalDatabaseTestHarness <DbConnection, DbCommand, DbDataReader>( connection, command => command.ExecuteNonQuery(), command => command.ExecuteScalar(), command => command.ExecuteReader(), (command, behavior) => command.ExecuteReader(behavior), command => command.ExecuteNonQueryAsync(), command => command.ExecuteScalarAsync(), command => command.ExecuteReaderAsync(), (command, behavior) => command.ExecuteReaderAsync(behavior) ); await testQueries.RunAsync(); } using (var connection = CreateConnection()) { var testQueries = new RelationalDatabaseTestHarness <IDbConnection, IDbCommand, IDataReader>( connection, command => command.ExecuteNonQuery(), command => command.ExecuteScalar(), command => command.ExecuteReader(), (command, behavior) => command.ExecuteReader(behavior), executeNonQueryAsync: null, executeScalarAsync: null, executeReaderAsync: null, executeReaderWithBehaviorAsync: null ); await testQueries.RunAsync(); } }
private static async Task Main() { var commandFactory = new DbCommandFactory(); var commandExecutor = new SqlCommandExecutor(); var cts = new CancellationTokenSource(); using (var connection = OpenConnection()) { await RelationalDatabaseTestHarness.RunAllAsync(connection, commandFactory, commandExecutor, cts.Token); } // allow time to flush await Task.Delay(2000, cts.Token); }
private static async Task Main() { var commandFactory = new DbCommandFactory($"[Microsoft-Data-SqlClient-Test-{Guid.NewGuid():N}]"); var commandExecutor = new MicrosoftSqlCommandExecutor(); var cts = new CancellationTokenSource(); using (var connection = OpenConnection()) { await RelationalDatabaseTestHarness.RunAllAsync <SqlCommand>(connection, commandFactory, commandExecutor, cts.Token); } // allow time to flush await Task.Delay(2000, cts.Token); }
private static async Task Main() { var tableId = Guid.NewGuid().ToString("N").Substring(0, 10); var commandFactory = new OracleDbCommandFactory($@"oracletest{tableId}"); var commandExecutor = new OracleCommandExecutor(); using (var connection = OpenConnection()) { await RelationalDatabaseTestHarness.RunAllAsync <OracleCommand>(connection, commandFactory, commandExecutor, CancellationToken.None); } // allow time to flush await Task.Delay(2000); }
private static async Task Main(string[] args) { var commandFactory = new DbCommandFactory($"[FakeDbCommand-Test-{Guid.NewGuid():N}]"); var commandExecutor = new FakeCommandExecutor(); var cts = new CancellationTokenSource(); using (var connection = OpenConnection()) { await RelationalDatabaseTestHarness.RunAllAsync <FakeCommand>(connection, commandFactory, commandExecutor, cts.Token); } if (args.Length > 0 && args[0] == "no-wait") { return; } // allow time to flush await Task.Delay(2000, cts.Token); }