github.com/wawandco/oxpecker@v1.5.7-0.20210910201653-5958d4afdd89/tools/soda/fizz/rename_test.go (about) 1 package fizz 2 3 import ( 4 "errors" 5 "testing" 6 ) 7 8 func Test_Rename(t *testing.T) { 9 r := rename{} 10 _, _, err := r.GenerateFizz("rename_something_invalid", []string{}) 11 if err == nil { 12 t.Error("should error but got nil") 13 } 14 } 15 16 func Test_Rename_Table(t *testing.T) { 17 r := rename{} 18 19 t.Run("invalid table renamer", func(t *testing.T) { 20 _, _, err := r.GenerateFizz("rename_table_users", []string{}) 21 if err == nil { 22 t.Error("should error but got nil") 23 } 24 }) 25 26 t.Run("normal table renamer", func(t *testing.T) { 27 up, down, err := r.GenerateFizz("rename_table_users_to_employees", []string{}) 28 if err != nil { 29 t.Error("should be nil but got error") 30 } 31 32 expectedUp := `rename_table("users", "employees")` 33 expectedDown := `rename_table("employees", "users")` 34 35 if up != expectedUp { 36 t.Errorf("expected %v but got %v", expectedUp, up) 37 } 38 39 if down != expectedDown { 40 t.Errorf("expected %v but got %v", expectedDown, down) 41 } 42 }) 43 } 44 45 func Test_Rename_Column(t *testing.T) { 46 r := rename{} 47 48 t.Run("invalid column renamer", func(t *testing.T) { 49 _, _, err := r.GenerateFizz("rename_column_description_from_templates", []string{}) 50 if err == nil { 51 t.Error("should error but got nil") 52 } 53 }) 54 55 t.Run("normal column renamer", func(t *testing.T) { 56 up, down, err := r.GenerateFizz("rename_column_landing_to_html_from_templates", []string{}) 57 if err != nil { 58 t.Error("should be nil but got error") 59 } 60 61 expectedUp := `rename_column("templates", "landing", "html")` 62 expectedDown := `rename_column("templates", "html", "landing")` 63 64 if up != expectedUp { 65 t.Errorf("expected %v but got %v", expectedUp, up) 66 } 67 68 if down != expectedDown { 69 t.Errorf("expected %v but got %v", expectedDown, down) 70 } 71 }) 72 } 73 74 func Test_Rename_Index(t *testing.T) { 75 r := rename{} 76 77 t.Run("invalid index renamer", func(t *testing.T) { 78 _, _, err := r.GenerateFizz("rename_index_idx_from_templates", []string{}) 79 if err == nil { 80 t.Error("should error but got nil") 81 } 82 }) 83 84 t.Run("normal index renamer", func(t *testing.T) { 85 up, down, err := r.GenerateFizz("rename_index_idx_events_name_to_idx_events_from_events", []string{}) 86 if err != nil { 87 t.Error("should be nil but got error") 88 } 89 90 expectedUp := `rename_index("events", "idx_events_name", "idx_events")` 91 expectedDown := `rename_index("events", "idx_events", "idx_events_name")` 92 93 if up != expectedUp { 94 t.Errorf("expected %v but got %v", expectedUp, up) 95 } 96 97 if down != expectedDown { 98 t.Errorf("expected %v but got %v", expectedDown, down) 99 } 100 }) 101 } 102 103 func Test_Rename_Matches(t *testing.T) { 104 r := rename{} 105 106 cases := []struct { 107 name string 108 expected bool 109 }{ 110 {name: "rena", expected: false}, 111 {name: "rename", expected: true}, 112 {name: "rename_table", expected: true}, 113 {name: "rename_col", expected: true}, 114 {name: "rename_ind", expected: true}, 115 } 116 117 for _, c := range cases { 118 matchs := r.match(c.name) 119 if matchs != c.expected { 120 t.Errorf("expected %v but got %v", c.expected, matchs) 121 } 122 } 123 } 124 125 func Test_Rename_Table_Matches(t *testing.T) { 126 r := rename{} 127 128 cases := []struct { 129 name string 130 expected error 131 }{ 132 {name: "rename_table", expected: ErrInvalidRenamer}, 133 {name: "rename_table_users", expected: ErrInvalidRenamer}, 134 {name: "rename_table_users_to_employees", expected: nil}, 135 } 136 137 for _, c := range cases { 138 _, _, err := r.GenerateFizz(c.name, []string{}) 139 if !errors.Is(err, c.expected) { 140 t.Errorf("expected %v but got %v", c.expected, err) 141 } 142 } 143 } 144 145 func Test_Rename_Column_Matches(t *testing.T) { 146 r := rename{} 147 148 cases := []struct { 149 name string 150 expected error 151 }{ 152 {name: "rename_column", expected: ErrInvalidRenamer}, 153 {name: "rename_column_description", expected: ErrInvalidRenamer}, 154 {name: "rename_column_description_to_summary", expected: ErrInvalidRenamer}, 155 {name: "rename_column_description_to_summary_from", expected: ErrInvalidRenamer}, 156 {name: "rename_column_description_to_summary_from_templates", expected: nil}, 157 } 158 159 for _, c := range cases { 160 _, _, err := r.GenerateFizz(c.name, []string{}) 161 if !errors.Is(err, c.expected) { 162 t.Errorf("expected %v but got %v", c.expected, err) 163 } 164 } 165 }