github.com/RevenueMonster/sqlike@v1.0.6/sql/dialect/mysql/database_test.go (about)

     1  package mysql
     2  
     3  import (
     4  	"testing"
     5  
     6  	sqlstmt "github.com/RevenueMonster/sqlike/sql/stmt"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestUseDatabase(t *testing.T) {
    11  	ms := New()
    12  	stmt := sqlstmt.AcquireStmt(ms)
    13  	defer sqlstmt.ReleaseStmt(stmt)
    14  	ms.UseDatabase(stmt, "db")
    15  	require.Equal(t, "USE `db`;", stmt.String())
    16  	require.ElementsMatch(t, []interface{}{}, stmt.Args())
    17  }
    18  
    19  func TestCreateDatabase(t *testing.T) {
    20  	ms := New()
    21  	stmt := sqlstmt.AcquireStmt(ms)
    22  	defer sqlstmt.ReleaseStmt(stmt)
    23  
    24  	{
    25  		ms.CreateDatabase(stmt, "db", false)
    26  		require.Equal(t, "CREATE DATABASE `db`;", stmt.String())
    27  		require.ElementsMatch(t, []interface{}{}, stmt.Args())
    28  	}
    29  
    30  	stmt.Reset()
    31  
    32  	{
    33  		ms.CreateDatabase(stmt, "db", true)
    34  		require.Equal(t, "CREATE DATABASE IF NOT EXISTS `db`;", stmt.String())
    35  		require.ElementsMatch(t, []interface{}{}, stmt.Args())
    36  	}
    37  }
    38  
    39  func TestDropDatabase(t *testing.T) {
    40  	ms := New()
    41  	stmt := sqlstmt.AcquireStmt(ms)
    42  	defer sqlstmt.ReleaseStmt(stmt)
    43  
    44  	{
    45  		ms.DropDatabase(stmt, "db", false)
    46  		require.Equal(t, "DROP SCHEMA `db`;", stmt.String())
    47  		require.ElementsMatch(t, []interface{}{}, stmt.Args())
    48  	}
    49  
    50  	stmt.Reset()
    51  
    52  	{
    53  		ms.DropDatabase(stmt, "db", true)
    54  		require.Equal(t, "DROP SCHEMA IF EXISTS `db`;", stmt.String())
    55  		require.ElementsMatch(t, []interface{}{}, stmt.Args())
    56  	}
    57  }
    58  
    59  func TestGetDatabases(t *testing.T) {
    60  	ms := New()
    61  	stmt := sqlstmt.AcquireStmt(ms)
    62  	defer sqlstmt.ReleaseStmt(stmt)
    63  	ms.GetDatabases(stmt)
    64  	require.Equal(t, "SHOW DATABASES;", stmt.String())
    65  	require.ElementsMatch(t, []interface{}{}, stmt.Args())
    66  }