github.com/naphatkrit/deis@v1.12.3/client/controller/models/users/users_test.go (about) 1 package users 2 3 import ( 4 "fmt" 5 "net/http" 6 "net/http/httptest" 7 "net/url" 8 "reflect" 9 "testing" 10 11 "github.com/deis/deis/client/controller/api" 12 "github.com/deis/deis/client/controller/client" 13 "github.com/deis/deis/version" 14 ) 15 16 const usersFixture string = ` 17 { 18 "count": 1, 19 "next": null, 20 "previous": null, 21 "results": [ 22 { 23 "id": 1, 24 "last_login": "2014-10-19T22:01:00.601Z", 25 "is_superuser": true, 26 "username": "test", 27 "first_name": "test", 28 "last_name": "testerson", 29 "email": "test@example.com", 30 "is_staff": true, 31 "is_active": true, 32 "date_joined": "2014-10-19T22:01:00.601Z", 33 "groups": [], 34 "user_permissions": [] 35 } 36 ] 37 }` 38 39 type fakeHTTPServer struct{} 40 41 func (fakeHTTPServer) ServeHTTP(res http.ResponseWriter, req *http.Request) { 42 res.Header().Add("DEIS_API_VERSION", version.APIVersion) 43 44 if req.URL.Path == "/v1/users/" && req.Method == "GET" { 45 res.Write([]byte(usersFixture)) 46 return 47 } 48 49 fmt.Printf("Unrecongized URL %s\n", req.URL) 50 res.WriteHeader(http.StatusNotFound) 51 res.Write(nil) 52 } 53 54 func TestUsersList(t *testing.T) { 55 t.Parallel() 56 57 expected := []api.User{ 58 api.User{ 59 ID: 1, 60 LastLogin: "2014-10-19T22:01:00.601Z", 61 IsSuperuser: true, 62 Username: "test", 63 FirstName: "test", 64 LastName: "testerson", 65 Email: "test@example.com", 66 IsStaff: true, 67 IsActive: true, 68 DateJoined: "2014-10-19T22:01:00.601Z", 69 }, 70 } 71 72 handler := fakeHTTPServer{} 73 server := httptest.NewServer(handler) 74 defer server.Close() 75 76 u, err := url.Parse(server.URL) 77 78 if err != nil { 79 t.Fatal(err) 80 } 81 82 httpClient := client.CreateHTTPClient(false) 83 84 client := client.Client{HTTPClient: httpClient, ControllerURL: *u, Token: "abc"} 85 86 actual, _, err := List(&client, 100) 87 88 if err != nil { 89 t.Fatal(err) 90 } 91 92 if !reflect.DeepEqual(expected, actual) { 93 t.Errorf("Expected %v, Got %v", expected, actual) 94 } 95 }