Ejemplo n.º 1
0
        public async Task ChangeDatabaseNull()
        {
            var csb = AppConfig.CreateConnectionStringBuilder();

            using var connection = new MySqlConnection(csb.ConnectionString);
            await Assert.ThrowsAsync <ArgumentException>(() => connection.ChangeDatabaseAsync(null));

            await Assert.ThrowsAsync <ArgumentException>(() => connection.ChangeDatabaseAsync(""));
        }
Ejemplo n.º 2
0
        public async Task ChangeDatabaseNotOpen()
        {
            var csb = AppConfig.CreateConnectionStringBuilder();

            using var connection = new MySqlConnection(csb.ConnectionString);
            await Assert.ThrowsAsync <InvalidOperationException>(() => connection.ChangeDatabaseAsync(AppConfig.SecondaryDatabase));
        }
Ejemplo n.º 3
0
        public async Task ChangeDatabaseInvalidName()
        {
            var csb = AppConfig.CreateConnectionStringBuilder();

            using var connection = new MySqlConnection(csb.ConnectionString);
            connection.Open();

            await Assert.ThrowsAsync <MySqlException>(() => connection.ChangeDatabaseAsync($"not_a_real_database_1234"));

            Assert.Equal(ConnectionState.Open, connection.State);
            Assert.Equal(csb.Database, connection.Database);
            Assert.Equal(csb.Database, await QueryCurrentDatabaseAsync(connection));
        }
Ejemplo n.º 4
0
        public async Task ChangeDatabase()
        {
            var csb = AppConfig.CreateConnectionStringBuilder();

            using var connection = new MySqlConnection(csb.ConnectionString);
            await connection.OpenAsync();

            Assert.Equal(csb.Database, connection.Database);
            Assert.Equal(csb.Database, await QueryCurrentDatabaseAsync(connection));

            await connection.ChangeDatabaseAsync(AppConfig.SecondaryDatabase);

            Assert.Equal(AppConfig.SecondaryDatabase, connection.Database);
            Assert.Equal(AppConfig.SecondaryDatabase, await QueryCurrentDatabaseAsync(connection));
        }
Ejemplo n.º 5
0
        protected async Task <Object> GetData(
            string database,
            string sql,
            ChartScaling scale,
            Func <IEnumerable <IDictionary <string, object> >, Object> proc_rows,
            CancellationToken token
            )
        {
            var query_data = new List <Dictionary <string, object> >();

            using (var conn = new MySqlConnection(Startup.Config["Datasource"]))
            {
                await conn.OpenAsync(token);

                await conn.ChangeDatabaseAsync(database, token);

                using (var cmd = new MySqlCommand(sql, conn))
                {
                    cmd.Parameters.Add(new MySqlParameter("points", scale.Points));
                    cmd.Parameters.Add(new MySqlParameter("interval", scale.Interval));
                    cmd.Parameters.Add(new MySqlParameter("start", scale.Start));
                    cmd.Parameters.Add(new MySqlParameter("end", scale.End));

                    using (var dr = await cmd.ExecuteReaderAsync(token))
                    {
                        while (await dr.ReadAsync(token))
                        {
                            var row = new Dictionary <string, object>();
                            for (var i = 0; i < dr.FieldCount; i++)
                            {
                                row.Add(dr.GetName(i), dr.GetValue(i));
                            }
                            query_data.Add(row);
                        }
                    }
                }
            }
            return(proc_rows(query_data));
        }
Ejemplo n.º 6
0
        public async Task ChangeDatabaseConnectionPooling()
        {
            var csb = AppConfig.CreateConnectionStringBuilder();

            csb.Pooling         = true;
            csb.MinimumPoolSize = 0;
            csb.MaximumPoolSize = 6;

            for (int i = 0; i < csb.MaximumPoolSize * 2; i++)
            {
                using var connection = new MySqlConnection(csb.ConnectionString);
                await connection.OpenAsync();

                Assert.Equal(csb.Database, connection.Database);
                Assert.Equal(csb.Database, await QueryCurrentDatabaseAsync(connection));

                await connection.ChangeDatabaseAsync(AppConfig.SecondaryDatabase);

                Assert.Equal(AppConfig.SecondaryDatabase, connection.Database);
                Assert.Equal(AppConfig.SecondaryDatabase, await QueryCurrentDatabaseAsync(connection));
            }
        }