예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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();
                }
            }
        }
예제 #5
0
        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();
            }
        }
예제 #6
0
        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);
        }
예제 #7
0
        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);
        }
예제 #8
0
        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);
        }
예제 #9
0
        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);
        }