package fetch import ( "errors" "net/http" "net/http/httptest" "testing" ) const testfport = ":13153" func Test_Fetch(t *testing.T) { s := mockRemote() defer s.Close() cases := []struct { process func(string, []byte) error err error }{ { process: func(string, []byte) error { return nil }, err: nil, }, { process: func(string, []byte) error { return errors.New("that one") }, err: errors.New("that one"), }, } for _, c := range cases { f, err := New(testfport, c.process) if err != nil && err != c.err { t.Errorf("cannot create new fetcher: %v", err) } else if err == nil { if err := f.FetchProcess(s.URL); err != nil && err.Error() != c.err.Error() { t.Errorf("unexpected error: %v, expected %v", err, c.err) } } } } func mockRemote() *httptest.Server { return httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { })) }