public void CloneWithUsesNewConnectionString(bool openConnection)
 {
     using var connection = new MySqlConnection(AppConfig.ConnectionString);
     if (openConnection)
     {
         connection.Open();
     }
     using var connection2 = connection.CloneWith("user=root;password=pass;server=example.com;database=test");
     Assert.Equal("User Id=root;Password=pass;Server=example.com;Database=test", connection2.ConnectionString);
 }
 public static ServerVersion AutoDetect(MySqlConnection connection)
 {
     using var clonedConnection = connection.CloneWith(
               new MySqlConnectionStringBuilder(connection.ConnectionString)
     {
         Database = string.Empty
     }.ConnectionString);
     clonedConnection.Open();
     return(new ServerVersion(clonedConnection.ServerVersion));
 }
        public void CloneWithCopiesExistingPassword()
        {
            using var connection = new MySqlConnection(AppConfig.ConnectionString);
            connection.Open();

            var builder = AppConfig.CreateConnectionStringBuilder();

            builder.Password      = "";
            using var connection2 = connection.CloneWith(builder.ConnectionString);
            connection2.Open();
            Assert.Equal(ConnectionState.Open, connection2.State);
        }
        public void CloneWithUsesExistingPassword()
        {
            using var connection = new MySqlConnection(AppConfig.ConnectionString);
            var newConnectionString = "user=root;server=example.com;database=test";

            using var connection2 = connection.CloneWith(newConnectionString);

            var builder = new MySqlConnectionStringBuilder(newConnectionString);

            builder.Password = AppConfig.CreateConnectionStringBuilder().Password;
            Assert.Equal(builder.ConnectionString, connection2.ConnectionString);
        }
        public void CloneWithDoesNotDiscloseExistingPassword(bool persistSecurityInfo)
        {
            using var connection = new MySqlConnection(AppConfig.ConnectionString);
            connection.Open();

            var newConnectionString = "user=root;server=example.com;database=test;Persist Security Info=" + persistSecurityInfo;

            using var connection2 = connection.CloneWith(newConnectionString);

            var builder = new MySqlConnectionStringBuilder(newConnectionString);

            Assert.Equal(builder.ConnectionString, connection2.ConnectionString);
        }
        public static ServerVersion AutoDetect(MySqlConnection connection)
        {
            string serverVersion;

            if (connection.State != ConnectionState.Open)
            {
                using var clonedConnection = connection.CloneWith(
                          new MySqlConnectionStringBuilder(connection.ConnectionString)
                {
                    Database = string.Empty
                }.ConnectionString);
                clonedConnection.Open();
                serverVersion = clonedConnection.ServerVersion;
            }
            else
            {
                serverVersion = connection.ServerVersion;
            }

            return(FromString(serverVersion));
        }