Loading controllers/checkerboard/checkerboard_test.go +6 −2 Original line number Diff line number Diff line Loading @@ -4,21 +4,25 @@ import ( "net/http" "testing" "github.com/taironas/route" tgTesting "github.com/taironas/tinygraphs/testing" ) func TestCheckerboard(t *testing.T) { r := new(route.Router) r.HandleFunc("/checkerboard", Checkerboard) test := tgTesting.GenerateHandlerFunc(t, Checkerboard) for _, p := range tgTesting.GoodParams { recorder := test("GET", p) recorder := test("/checkerboard", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } for _, p := range tgTesting.BadParams { recorder := test("GET", p) recorder := test("/checkerboard", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } Loading controllers/squares/random_test.go 0 → 100644 +30 −0 Original line number Diff line number Diff line package squares import ( "net/http" "testing" "github.com/taironas/route" tgTesting "github.com/taironas/tinygraphs/testing" ) func TestRandom(t *testing.T) { r := new(route.Router) r.HandleFunc("/squares/random", Random) test := tgTesting.GenerateHandlerFunc(t, Random) for _, p := range tgTesting.GoodParams { recorder := test("/squares/random", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } for _, p := range tgTesting.BadParams { recorder := test("/squares/random", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } } controllers/squares/square_test.go 0 → 100644 +32 −0 Original line number Diff line number Diff line package squares import ( "net/http" "testing" "github.com/taironas/route" tgTesting "github.com/taironas/tinygraphs/testing" ) func TestSquares(t *testing.T) { r := new(route.Router) r.HandleFunc("/squares/:key", Square) test := tgTesting.GenerateHandlerFunc(t, Square) for _, p := range tgTesting.GoodParams { recorder := test("/squares/test", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } for _, p := range tgTesting.BadParams { recorder := test("/squares/test", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } } testing/testing.go +8 −6 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ import ( "net/http/httptest" "strings" "testing" "github.com/taironas/route" ) var GoodParams []string Loading @@ -28,19 +30,19 @@ func init() { } } type HandlerFunc func(method, params string) *httptest.ResponseRecorder type HandlerFunc func(url, method, params string, r *route.Router) *httptest.ResponseRecorder func GenerateHandlerFunc(t *testing.T, handler func(http.ResponseWriter, *http.Request)) HandlerFunc { return func(method, params string) *httptest.ResponseRecorder { return func(url, method, params string, r *route.Router) *httptest.ResponseRecorder { if r, err := http.NewRequest(method, "", strings.NewReader(params)); err != nil { if req, err := http.NewRequest(method, url, strings.NewReader(params)); err != nil { t.Errorf("%v", err) } else { r.Header.Set("Content-Type", "application/json") r.Body.Close() req.Header.Set("Content-Type", "application/json") req.Body.Close() recorder := httptest.NewRecorder() handler(recorder, r) r.ServeHTTP(recorder, req) return recorder } return nil Loading Loading
controllers/checkerboard/checkerboard_test.go +6 −2 Original line number Diff line number Diff line Loading @@ -4,21 +4,25 @@ import ( "net/http" "testing" "github.com/taironas/route" tgTesting "github.com/taironas/tinygraphs/testing" ) func TestCheckerboard(t *testing.T) { r := new(route.Router) r.HandleFunc("/checkerboard", Checkerboard) test := tgTesting.GenerateHandlerFunc(t, Checkerboard) for _, p := range tgTesting.GoodParams { recorder := test("GET", p) recorder := test("/checkerboard", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } for _, p := range tgTesting.BadParams { recorder := test("GET", p) recorder := test("/checkerboard", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } Loading
controllers/squares/random_test.go 0 → 100644 +30 −0 Original line number Diff line number Diff line package squares import ( "net/http" "testing" "github.com/taironas/route" tgTesting "github.com/taironas/tinygraphs/testing" ) func TestRandom(t *testing.T) { r := new(route.Router) r.HandleFunc("/squares/random", Random) test := tgTesting.GenerateHandlerFunc(t, Random) for _, p := range tgTesting.GoodParams { recorder := test("/squares/random", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } for _, p := range tgTesting.BadParams { recorder := test("/squares/random", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } }
controllers/squares/square_test.go 0 → 100644 +32 −0 Original line number Diff line number Diff line package squares import ( "net/http" "testing" "github.com/taironas/route" tgTesting "github.com/taironas/tinygraphs/testing" ) func TestSquares(t *testing.T) { r := new(route.Router) r.HandleFunc("/squares/:key", Square) test := tgTesting.GenerateHandlerFunc(t, Square) for _, p := range tgTesting.GoodParams { recorder := test("/squares/test", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } for _, p := range tgTesting.BadParams { recorder := test("/squares/test", "GET", p, r) if recorder.Code != http.StatusOK { t.Errorf("returned %v. Expected %v.", recorder.Code, http.StatusBadRequest) } } }
testing/testing.go +8 −6 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ import ( "net/http/httptest" "strings" "testing" "github.com/taironas/route" ) var GoodParams []string Loading @@ -28,19 +30,19 @@ func init() { } } type HandlerFunc func(method, params string) *httptest.ResponseRecorder type HandlerFunc func(url, method, params string, r *route.Router) *httptest.ResponseRecorder func GenerateHandlerFunc(t *testing.T, handler func(http.ResponseWriter, *http.Request)) HandlerFunc { return func(method, params string) *httptest.ResponseRecorder { return func(url, method, params string, r *route.Router) *httptest.ResponseRecorder { if r, err := http.NewRequest(method, "", strings.NewReader(params)); err != nil { if req, err := http.NewRequest(method, url, strings.NewReader(params)); err != nil { t.Errorf("%v", err) } else { r.Header.Set("Content-Type", "application/json") r.Body.Close() req.Header.Set("Content-Type", "application/json") req.Body.Close() recorder := httptest.NewRecorder() handler(recorder, r) r.ServeHTTP(recorder, req) return recorder } return nil Loading