http_test.go (1368B)
1 package jira 2 3 import ( 4 "io" 5 "net/http" 6 "net/url" 7 "path" 8 "testing" 9 "testing/fstest" 10 ) 11 12 func handleComment(w http.ResponseWriter, req *http.Request) { 13 id := path.Base(req.URL.Path) 14 http.ServeFile(w, req, "testdata/comment/"+id) 15 } 16 17 func TestGet(t *testing.T) { 18 srv := newFakeServer("testdata") 19 defer srv.Close() 20 u, err := url.Parse(srv.URL) 21 if err != nil { 22 t.Fatal(err) 23 } 24 client := &Client{APIRoot: u} 25 26 project := "TEST" 27 issue := "TEST-1" 28 comment := "69" 29 if _, err := client.Project(project); err != nil { 30 t.Fatalf("get project %s: %v", project, err) 31 } 32 if _, err := client.Issues(project); err != nil { 33 t.Fatalf("get %s issues: %v", project, err) 34 } 35 if _, err := client.Issue(issue); err != nil { 36 t.Fatalf("get issue %s: %v", issue, err) 37 } 38 c, err := client.Comment(issue, comment) 39 if err != nil { 40 t.Fatalf("get comment %s from %s: %v", comment, issue, err) 41 } 42 if c.ID != comment { 43 t.Fatalf("wanted comment id %s, got %s", comment, c.ID) 44 } 45 46 fsys := &FS{Client: client} 47 f, err := fsys.Open("TEST/1/69") 48 if err != nil { 49 t.Fatal(err) 50 } 51 if _, err := f.Stat(); err != nil { 52 t.Fatal(err) 53 } 54 if _, err := io.Copy(io.Discard, f); err != nil { 55 t.Fatal(err) 56 } 57 f.Close() 58 59 expected := []string{ 60 "TEST", 61 "TEST/1", 62 "TEST/1/issue", 63 "TEST/1/69", 64 } 65 if err := fstest.TestFS(fsys, expected...); err != nil { 66 t.Error(err) 67 } 68 }