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 }