github.com/traefik/yaegi@v0.15.1/_test/cli8.go (about)

     1  package main
     2  
     3  import (
     4  	"net/http"
     5  	"net/http/httptest"
     6  )
     7  
     8  type T struct {
     9  	name string
    10  	next http.Handler
    11  }
    12  
    13  func (t *T) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
    14  	println("in T.ServeHTTP")
    15  	if t.next != nil {
    16  		t.next.ServeHTTP(rw, req)
    17  	}
    18  }
    19  
    20  func New(name string, next http.Handler) (http.Handler, error) { return &T{name, next}, nil }
    21  
    22  func main() {
    23  	next := func(rw http.ResponseWriter, req *http.Request) {
    24  		println("in next")
    25  	}
    26  
    27  	t, err := New("test", http.HandlerFunc(next))
    28  	if err != nil {
    29  		panic(err)
    30  	}
    31  
    32  	recorder := httptest.NewRecorder()
    33  	req := httptest.NewRequest(http.MethodGet, "/", nil)
    34  	t.ServeHTTP(recorder, req)
    35  	println(recorder.Result().Status)
    36  }
    37  
    38  // Output:
    39  // in T.ServeHTTP
    40  // in next
    41  // 200 OK