package main import ( "io/ioutil" "net/http" "net/http/httptest" "os" "testing" ) func TestFileSystemImageSource(t *testing.T) { var body []byte var err error const fixtureFile = "testdata/large.jpg" source := NewFileSystemImageSource(&SourceConfig{MountPath: "testdata"}) fakeHandler := func(w http.ResponseWriter, r *http.Request) { if !source.Matches(r) { t.Fatal("Cannot match the request") } body, err = source.GetImage(r) if err != nil { t.Fatalf("Error while reading the body: %s", err) } w.Write(body) } file, _ := os.Open(fixtureFile) r, _ := http.NewRequest(http.MethodGet, "http://foo/bar?file=large.jpg", file) w := httptest.NewRecorder() fakeHandler(w, r) buf, _ := ioutil.ReadFile(fixtureFile) if len(body) != len(buf) { t.Error("Invalid response body") } }