github.com/tiagovtristao/plz@v13.4.0+incompatible/tools/cache/server/http_server_test.go (about) 1 package server 2 3 import ( 4 "fmt" 5 "io" 6 "net/http" 7 "net/http/httptest" 8 "strings" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 12 13 "github.com/thought-machine/please/src/core" 14 ) 15 16 var ( 17 server *httptest.Server 18 realURL string 19 fakeURL string 20 otherRealURL string 21 extraRealURL string 22 reader io.Reader 23 ) 24 25 const cachePath = "tools/cache/server/test_data" 26 27 func init() { 28 c := newCache(cachePath) 29 server = httptest.NewServer(BuildRouter(c)) 30 realURL = fmt.Sprintf("%s/artifact/darwin_amd64/pack/label/hash/label.ext", server.URL) 31 otherRealURL = fmt.Sprintf("%s/artifact/linux_amd64/otherpack/label/hash/label.ext", server.URL) 32 extraRealURL = fmt.Sprintf("%s/artifact/extrapack/label", server.URL) 33 fakeURL = fmt.Sprintf("%s/artifact/darwin_amd64/somepack/somelabel/somehash/somelabel.ext", server.URL) 34 } 35 36 func TestOutputFolderExists(t *testing.T) { 37 if !core.PathExists(cachePath) { 38 t.Errorf("%s does not exist.", cachePath) 39 } 40 } 41 42 func TestGetHandler(t *testing.T) { 43 request, err := http.NewRequest("GET", realURL, reader) 44 assert.NoError(t, err) 45 res, err := http.DefaultClient.Do(request) 46 47 if err != nil { 48 t.Error(err) 49 } 50 if res.StatusCode < 200 || res.StatusCode > 299 { 51 t.Error("Expected response Status Accepted, got:", res.Status) 52 } 53 } 54 55 func TestGetHandlerError(t *testing.T) { 56 request, _ := http.NewRequest("GET", fakeURL, reader) 57 res, _ := http.DefaultClient.Do(request) 58 if res.StatusCode != 404 { 59 t.Error("Expected nil and found artifact.") 60 } 61 } 62 63 func TestPostHandler(t *testing.T) { 64 fileContent := "This is a newly created file." 65 reader = strings.NewReader(fileContent) 66 request, err := http.NewRequest("POST", fakeURL, reader) 67 assert.NoError(t, err) 68 res, err := http.DefaultClient.Do(request) 69 70 if err != nil { 71 t.Error(err) 72 } 73 74 if res.StatusCode < 200 || res.StatusCode > 299 { 75 t.Error("Expected response Status Accepted, got:", res.Status) 76 } 77 } 78 79 func TestDeleteHandler(t *testing.T) { 80 request, _ := http.NewRequest("DELETE", extraRealURL, reader) 81 res, err := http.DefaultClient.Do(request) 82 if err != nil { 83 t.Error(err) 84 } 85 86 if res.StatusCode < 200 || res.StatusCode > 299 { 87 t.Error("Expected response Status Accepted, got:", res.Status) 88 } 89 } 90 91 func TestDeleteAllHandler(t *testing.T) { 92 request, _ := http.NewRequest("DELETE", server.URL, reader) 93 res, err := http.DefaultClient.Do(request) 94 if err != nil { 95 t.Error(err) 96 } 97 98 if res.StatusCode < 200 || res.StatusCode > 299 { 99 t.Error("Expected response Status Accepted, got:", res.Status) 100 } 101 }