group_test.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package tango
  2. import (
  3. "bytes"
  4. "net/http"
  5. "net/http/httptest"
  6. "testing"
  7. )
  8. func TestGroup1(t *testing.T) {
  9. buff := bytes.NewBufferString("")
  10. recorder := httptest.NewRecorder()
  11. recorder.Body = buff
  12. o := Classic()
  13. o.Group("/api", func(g *Group) {
  14. g.Get("/1", func() string {
  15. return "/1"
  16. })
  17. g.Post("/2", func() string {
  18. return "/2"
  19. })
  20. })
  21. req, err := http.NewRequest("GET", "http://localhost:8000/api/1", nil)
  22. if err != nil {
  23. t.Error(err)
  24. }
  25. o.ServeHTTP(recorder, req)
  26. expect(t, recorder.Code, http.StatusOK)
  27. refute(t, len(buff.String()), 0)
  28. expect(t, buff.String(), "/1")
  29. buff.Reset()
  30. req, err = http.NewRequest("POST", "http://localhost:8000/api/2", nil)
  31. if err != nil {
  32. t.Error(err)
  33. }
  34. o.ServeHTTP(recorder, req)
  35. expect(t, recorder.Code, http.StatusOK)
  36. refute(t, len(buff.String()), 0)
  37. expect(t, buff.String(), "/2")
  38. }
  39. func TestGroup2(t *testing.T) {
  40. buff := bytes.NewBufferString("")
  41. recorder := httptest.NewRecorder()
  42. recorder.Body = buff
  43. g := NewGroup()
  44. g.Get("/1", func() string {
  45. return "/1"
  46. })
  47. g.Post("/2", func() string {
  48. return "/2"
  49. })
  50. o := Classic()
  51. o.Group("/api", g)
  52. req, err := http.NewRequest("GET", "http://localhost:8000/api/1", nil)
  53. if err != nil {
  54. t.Error(err)
  55. }
  56. o.ServeHTTP(recorder, req)
  57. expect(t, recorder.Code, http.StatusOK)
  58. refute(t, len(buff.String()), 0)
  59. expect(t, buff.String(), "/1")
  60. buff.Reset()
  61. req, err = http.NewRequest("POST", "http://localhost:8000/api/2", nil)
  62. if err != nil {
  63. t.Error(err)
  64. }
  65. o.ServeHTTP(recorder, req)
  66. expect(t, recorder.Code, http.StatusOK)
  67. refute(t, len(buff.String()), 0)
  68. expect(t, buff.String(), "/2")
  69. }