github.com/fanux/shipyard@v0.0.0-20161009071005-6515ce223235/controller/api/consolesession_test.go (about) 1 package api 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "fmt" 7 "net/http" 8 "net/http/httptest" 9 "testing" 10 11 "github.com/shipyard/shipyard" 12 "github.com/shipyard/shipyard/controller/mock_test" 13 "github.com/stretchr/testify/assert" 14 ) 15 16 func TestApiGetConsoleSession(t *testing.T) { 17 api, err := getTestApi() 18 if err != nil { 19 t.Fatal(err) 20 } 21 22 ts := httptest.NewServer(http.HandlerFunc(api.consoleSession)) 23 defer ts.Close() 24 25 res, err := http.Get(ts.URL) 26 if err != nil { 27 t.Fatal(err) 28 } 29 30 assert.Equal(t, res.StatusCode, 200, "expected response code 200") 31 cs := &shipyard.ConsoleSession{} 32 if err := json.NewDecoder(res.Body).Decode(&cs); err != nil { 33 t.Fatal(err) 34 } 35 36 assert.NotEqual(t, cs.ID, nil, "expected console session; received nil") 37 38 assert.Equal(t, cs.ID, mock_test.TestConsoleSession.ID, fmt.Sprintf("expected ID %s; got %s", mock_test.TestConsoleSession.ID, cs.ID)) 39 } 40 41 func TestApiPostConsoleSessions(t *testing.T) { 42 api, err := getTestApi() 43 if err != nil { 44 t.Fatal(err) 45 } 46 47 ts := httptest.NewServer(http.HandlerFunc(api.createConsoleSession)) 48 defer ts.Close() 49 50 data := []byte(`{"container_id": "abcdefg", "token": "12345"}`) 51 52 res, err := http.Post(ts.URL, "application/json", bytes.NewBuffer(data)) 53 if err != nil { 54 t.Fatal(err) 55 } 56 57 assert.Equal(t, res.StatusCode, 200, "expected response code 200") 58 } 59 60 func TestApiDeleteConsoleSession(t *testing.T) { 61 api, err := getTestApi() 62 if err != nil { 63 t.Fatal(err) 64 } 65 66 transport := &http.Transport{} 67 client := &http.Client{Transport: transport} 68 69 ts := httptest.NewServer(http.HandlerFunc(api.removeConsoleSession)) 70 defer ts.Close() 71 72 data := []byte(`{"id": "0"}`) 73 74 req, err := http.NewRequest("DELETE", ts.URL, bytes.NewBuffer(data)) 75 if err != nil { 76 t.Fatal(err) 77 } 78 79 res, err := client.Do(req) 80 if err != nil { 81 t.Fatal(err) 82 } 83 84 assert.Equal(t, res.StatusCode, 200, "expected response code 200") 85 }