github.com/RevenueMonster/sqlike@v1.0.6/sql/dialect/mysql/column_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 TestGetColumns(t *testing.T) { 11 ms := New() 12 stmt := sqlstmt.AcquireStmt(ms) 13 defer sqlstmt.ReleaseStmt(stmt) 14 ms.GetColumns(stmt, "db", "table") 15 require.Equal(t, `SELECT ORDINAL_POSITION, COLUMN_NAME, COLUMN_TYPE, COLUMN_DEFAULT, IS_NULLABLE, 16 DATA_TYPE, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_COMMENT, EXTRA FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ? ORDER BY ORDINAL_POSITION;`, stmt.String()) 17 require.ElementsMatch(t, []interface{}{"db", "table"}, stmt.Args()) 18 } 19 20 func TestRenameColumn(t *testing.T) { 21 ms := New() 22 stmt := sqlstmt.AcquireStmt(ms) 23 defer sqlstmt.ReleaseStmt(stmt) 24 ms.RenameColumn(stmt, "db", "table", "c1", "_column_") 25 require.Equal(t, "ALTER TABLE `db`.`table` RENAME COLUMN `c1` TO `_column_`;", stmt.String()) 26 require.ElementsMatch(t, []interface{}{}, stmt.Args()) 27 } 28 29 func TestDropColumn(t *testing.T) { 30 ms := New() 31 stmt := sqlstmt.AcquireStmt(ms) 32 defer sqlstmt.ReleaseStmt(stmt) 33 ms.DropColumn(stmt, "db", "table", "c1") 34 require.Equal(t, "ALTER TABLE `db`.`table` DROP COLUMN `c1`;", stmt.String()) 35 require.ElementsMatch(t, []interface{}{}, stmt.Args()) 36 }