func GetAll(m CrudResource) httperr.Handler { return func(w http.ResponseWriter, r *http.Request) error { dbmap, err := getDB() defer dbmap.Db.Close() if err != nil { return err } values := r.URL.Query() sql, args, err := querystr.Query(m, m.TableName(), values) if err != nil { return clientError(err) } models, err := dbmap.Select(m, sql, args...) if err != nil { return clientError(err) } return getAllWriteJSON(w, values, models) } }
func TestQueries(t *testing.T) { for _, testCase := range testCases { sql, args, err := querystr.Query(&testItem{}, tableName, testCase.v) if err == nil && testCase.err != nil || err != nil && testCase.err == nil { t.Fatal(err, "not equal", testCase.err) } if err != nil { continue } if strings.ToLower(sql) != strings.ToLower(testCase.sql) { t.Fatal(sql + " should equal " + testCase.sql) } for i, arg := range args { if !reflect.DeepEqual(arg, testCase.args[i]) { t.Fatal(arg, "should equal", testCase.args[i]) } } } }