blob: d95fa4013615226b557ea0d76dc87d14f43357eb [file] [log] [blame]
Samuel A. Falvo II2e2b8772013-07-04 15:40:15 -07001package gophercloud
2
3import (
4 "net/http"
5 "testing"
6)
7
8type testAccess struct {
9 public, internal string
10 calledFirstEndpointByCriteria int
11}
12
13func (ta *testAccess) FirstEndpointUrlByCriteria(ac ApiCriteria) string {
14 ta.calledFirstEndpointByCriteria++
15 urls := []string{ta.public, ta.internal}
16 return urls[ac.UrlChoice]
17}
18
Samuel A. Falvo IIbc0d54a2013-07-08 14:45:21 -070019func (ta *testAccess) AuthToken() string {
20 return ""
21}
22
Samuel A. Falvo II0167aaa2013-07-16 12:36:25 -070023func (ta *testAccess) Revoke(string) error {
24 return nil
25}
26
Samuel A. Falvo II2e2b8772013-07-04 15:40:15 -070027func TestGetServersApi(t *testing.T) {
28 c := TestContext().UseCustomClient(&http.Client{Transport: newTransport().WithResponse("Hello")})
29
30 acc := &testAccess{
31 public: "http://localhost:8080",
32 internal: "http://localhost:8086",
33 }
34
Samuel A. Falvo II1dd740a2013-07-08 15:48:40 -070035 _, err := c.ServersApi(acc, ApiCriteria{
Samuel A. Falvo II2e2b8772013-07-04 15:40:15 -070036 Name: "cloudComputeOpenStack",
37 Region: "dfw",
38 VersionId: "2",
39 })
40
41 if err != nil {
42 t.Error(err)
43 return
44 }
45
46 if acc.calledFirstEndpointByCriteria != 1 {
47 t.Error("Expected FirstEndpointByCriteria to be called")
48 return
49 }
50}