| 179 | } |
| 180 | |
| 181 | func TestGoify(t *testing.T) { |
| 182 | cases := map[string]struct { |
| 183 | str string |
| 184 | firstUpper bool |
| 185 | expected string |
| 186 | }{ |
| 187 | "empty": {"", false, ""}, |
| 188 | "first upper false": {"blue_id", false, "blueID"}, |
| 189 | "first upper false normal identifier all lower": {"blue", false, "blue"}, |
| 190 | "first upper false and UUID": {"blue_uuid", false, "blueUUID"}, |
| 191 | "first upper true": {"blue_id", true, "BlueID"}, |
| 192 | "first upper true and UUID": {"blue_uuid", true, "BlueUUID"}, |
| 193 | "first upper true normal identifier all lower": {"blue", true, "Blue"}, |
| 194 | "first upper false normal identifier": {"Blue", false, "blue"}, |
| 195 | "first upper true normal identifier": {"Blue", true, "Blue"}, |
| 196 | "invalid identifier": {"Blue%50", true, "Blue50"}, |
| 197 | "invalid identifier firstupper false": {"Blue%50", false, "blue50"}, |
| 198 | "only UUID and firstupper false": {"UUID", false, "uuid"}, |
| 199 | "consecutives invalid identifiers firstupper false": {"[[fields___type]]", false, "fieldsType"}, |
| 200 | "consecutives invalid identifiers": {"[[fields___type]]", true, "FieldsType"}, |
| 201 | "invalid identifiers": {"[[", false, "val"}, |
| 202 | "middle upper firstupper false": {"MiddleUpper", false, "middleUpper"}, |
| 203 | "middle upper": {"MiddleUpper", true, "MiddleUpper"}, |
| 204 | } |
| 205 | |
| 206 | for k, tc := range cases { |
| 207 | actual := Goify(tc.str, tc.firstUpper) |
| 208 | |
| 209 | if actual != tc.expected { |
| 210 | t.Errorf("%s: got %#v, expected %#v", k, actual, tc.expected) |
| 211 | } |
| 212 | } |
| 213 | } |