package standard import ( "bytes" "net/http" "net/http/httptest" "testing" "github.com/labstack/echo" "github.com/labstack/echo/engine" "github.com/stretchr/testify/assert" ) // TODO: Fix me func TestServer(t *testing.T) { s := New("") s.SetHandler(engine.HandlerFunc(func(req engine.Request, res engine.Response) { })) rec := httptest.NewRecorder() req := new(http.Request) s.ServeHTTP(rec, req) } func TestServerWrapHandler(t *testing.T) { e := echo.New() req := NewRequest(new(http.Request), nil) rec := httptest.NewRecorder() res := NewResponse(rec, nil) c := e.NewContext(req, res) h := WrapHandler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) w.Write([]byte("test")) })) if assert.NoError(t, h(c)) { assert.Equal(t, http.StatusOK, rec.Code) assert.Equal(t, "test", rec.Body.String()) } } func TestServerWrapMiddleware(t *testing.T) { e := echo.New() req := NewRequest(new(http.Request), nil) rec := httptest.NewRecorder() res := NewResponse(rec, nil) c := e.NewContext(req, res) buf := new(bytes.Buffer) mw := WrapMiddleware(func(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { buf.Write([]byte("mw")) h.ServeHTTP(w, r) }) }) h := mw(func(c echo.Context) error { return c.String(http.StatusOK, "OK") }) if assert.NoError(t, h(c)) { assert.Equal(t, "mw", buf.String()) assert.Equal(t, http.StatusOK, rec.Code) assert.Equal(t, "OK", rec.Body.String()) } }