package schema import "testing" func TestChangedTable(t *testing.T) { inputs := []struct { query, tbl string ok bool }{ {"alter\ttable foobar add column", "foobar", true}, {"ALTER TABLE foobar ADD COLUMN", "foobar", true}, {"alter table `foobar` add column", "foobar", true}, {"ALTER TABLE `foobar` ADD COLUMN", "foobar", true}, {"alter\ntable \n\tfoobar\nadd column", "foobar", true}, {"ALTER TABLE Foo_Bar111 ADD COLUMN", "Foo_Bar111", true}, {"SELECT * FROM foobar", "", false}, {"SELECT * FROM `foobar`", "", false}, } for _, in := range inputs { out, ok := changedTable(in.query) if ok != in.ok { if ok { t.Errorf("Didn't expect to match table %q in query %q", out, in.query) } else { t.Errorf("Expected to match table %q in query %q", in.tbl, in.query) } continue } if out != in.tbl { t.Errorf("Expected to match table %q, got %q in query %q", in.tbl, out, in.query) } } }