|
- package db
-
- import "testing"
-
- func TestAlterTableSqlBuilder_ToSQL(t *testing.T) {
- type fields struct {
- Dialect DialectType
- Name string
- Changes []string
- }
- tests := []struct {
- name string
- builder *AlterTableSqlBuilder
- want string
- wantErr bool
- }{
- {
- name: "MySQL add int",
- builder: DialectMySQL.
- AlterTable("the_table").
- AddColumn(DialectMySQL.Column("the_col", ColumnTypeInteger, UnsetSize)),
- want: "ALTER TABLE the_table ADD COLUMN the_col INT NOT NULL",
- wantErr: false,
- },
- {
- name: "MySQL add string",
- builder: DialectMySQL.
- AlterTable("the_table").
- AddColumn(DialectMySQL.Column("the_col", ColumnTypeVarChar, OptionalInt{true, 128})),
- want: "ALTER TABLE the_table ADD COLUMN the_col VARCHAR(128) NOT NULL",
- wantErr: false,
- },
-
- {
- name: "MySQL add int and string",
- builder: DialectMySQL.
- AlterTable("the_table").
- AddColumn(DialectMySQL.Column("first_col", ColumnTypeInteger, UnsetSize)).
- AddColumn(DialectMySQL.Column("second_col", ColumnTypeVarChar, OptionalInt{true, 128})),
- want: "ALTER TABLE the_table ADD COLUMN first_col INT NOT NULL, ADD COLUMN second_col VARCHAR(128) NOT NULL",
- wantErr: false,
- },
- }
- for _, tt := range tests {
- t.Run(tt.name, func(t *testing.T) {
- got, err := tt.builder.ToSQL()
- if (err != nil) != tt.wantErr {
- t.Errorf("ToSQL() error = %v, wantErr %v", err, tt.wantErr)
- return
- }
- if got != tt.want {
- t.Errorf("ToSQL() got = %v, want %v", got, tt.want)
- }
- })
- }
- }
|