github.com/fastly/go-fastly/v6@v6.8.0/fastly/backend_test.go (about) 1 package fastly 2 3 import ( 4 "testing" 5 ) 6 7 func TestClient_Backends(t *testing.T) { 8 t.Parallel() 9 10 var err error 11 var tv *Version 12 record(t, "backends/version", func(c *Client) { 13 tv = testVersion(t, c) 14 }) 15 16 // Create 17 var b *Backend 18 record(t, "backends/create", func(c *Client) { 19 b, err = c.CreateBackend(&CreateBackendInput{ 20 ServiceID: testServiceID, 21 ServiceVersion: tv.Number, 22 Name: "test-backend", 23 Address: "integ-test.go-fastly.com", 24 Port: Uint(1234), 25 ConnectTimeout: Uint(1500), 26 OverrideHost: "origin.example.com", 27 SSLCiphers: "DHE-RSA-AES256-SHA:DHE-RSA-CAMELLIA256-SHA:AES256-GCM-SHA384", 28 }) 29 }) 30 if err != nil { 31 t.Fatal(err) 32 } 33 34 // Ensure deleted 35 defer func() { 36 record(t, "backends/cleanup", func(c *Client) { 37 c.DeleteBackend(&DeleteBackendInput{ 38 ServiceID: testServiceID, 39 ServiceVersion: tv.Number, 40 Name: "test-backend", 41 }) 42 43 c.DeleteBackend(&DeleteBackendInput{ 44 ServiceID: testServiceID, 45 ServiceVersion: tv.Number, 46 Name: "new-test-backend", 47 }) 48 }) 49 }() 50 51 if b.Name != "test-backend" { 52 t.Errorf("bad name: %q", b.Name) 53 } 54 if b.Address != "integ-test.go-fastly.com" { 55 t.Errorf("bad address: %q", b.Address) 56 } 57 if b.Port != 1234 { 58 t.Errorf("bad port: %d", b.Port) 59 } 60 if b.ConnectTimeout != 1500 { 61 t.Errorf("bad connect_timeout: %d", b.ConnectTimeout) 62 } 63 if b.OverrideHost != "origin.example.com" { 64 t.Errorf("bad override_host: %q", b.OverrideHost) 65 } 66 67 // List 68 var bs []*Backend 69 record(t, "backends/list", func(c *Client) { 70 bs, err = c.ListBackends(&ListBackendsInput{ 71 ServiceID: testServiceID, 72 ServiceVersion: tv.Number, 73 }) 74 }) 75 if err != nil { 76 t.Fatal(err) 77 } 78 if len(bs) < 1 { 79 t.Errorf("bad backends: %v", bs) 80 } 81 82 // Get 83 var nb *Backend 84 record(t, "backends/get", func(c *Client) { 85 nb, err = c.GetBackend(&GetBackendInput{ 86 ServiceID: testServiceID, 87 ServiceVersion: tv.Number, 88 Name: "test-backend", 89 }) 90 }) 91 if err != nil { 92 t.Fatal(err) 93 } 94 if b.Name != nb.Name { 95 t.Errorf("bad name: %q (%q)", b.Name, nb.Name) 96 } 97 if b.Address != nb.Address { 98 t.Errorf("bad address: %q (%q)", b.Address, nb.Address) 99 } 100 if b.Port != nb.Port { 101 t.Errorf("bad port: %q (%q)", b.Port, nb.Port) 102 } 103 if b.ConnectTimeout != nb.ConnectTimeout { 104 t.Errorf("bad connect_timeout: %q (%q)", b.ConnectTimeout, nb.ConnectTimeout) 105 } 106 if b.OverrideHost != nb.OverrideHost { 107 t.Errorf("bad override_host: %q (%q)", b.OverrideHost, nb.OverrideHost) 108 } 109 110 // Update 111 var ub *Backend 112 record(t, "backends/update", func(c *Client) { 113 ub, err = c.UpdateBackend(&UpdateBackendInput{ 114 ServiceID: testServiceID, 115 ServiceVersion: tv.Number, 116 Name: "test-backend", 117 NewName: String("new-test-backend"), 118 OverrideHost: String("www.example.com"), 119 SSLCiphers: "RC4:!COMPLEMENTOFDEFAULT", 120 }) 121 }) 122 if err != nil { 123 t.Fatal(err) 124 } 125 if ub.Name != "new-test-backend" { 126 t.Errorf("bad name: %q", ub.Name) 127 } 128 if ub.OverrideHost != "www.example.com" { 129 t.Errorf("bad override_host: %q", ub.OverrideHost) 130 } 131 132 // Delete 133 record(t, "backends/delete", func(c *Client) { 134 err = c.DeleteBackend(&DeleteBackendInput{ 135 ServiceID: testServiceID, 136 ServiceVersion: tv.Number, 137 Name: "new-test-backend", 138 }) 139 }) 140 if err != nil { 141 t.Fatal(err) 142 } 143 } 144 145 func TestClient_ListBackends_validation(t *testing.T) { 146 var err error 147 _, err = testClient.ListBackends(&ListBackendsInput{ 148 ServiceID: "", 149 }) 150 if err != ErrMissingServiceID { 151 t.Errorf("bad error: %s", err) 152 } 153 154 _, err = testClient.ListBackends(&ListBackendsInput{ 155 ServiceID: "foo", 156 ServiceVersion: 0, 157 }) 158 if err != ErrMissingServiceVersion { 159 t.Errorf("bad error: %s", err) 160 } 161 } 162 163 func TestClient_CreateBackend_validation(t *testing.T) { 164 var err error 165 _, err = testClient.CreateBackend(&CreateBackendInput{ 166 ServiceID: "", 167 }) 168 if err != ErrMissingServiceID { 169 t.Errorf("bad error: %s", err) 170 } 171 172 _, err = testClient.CreateBackend(&CreateBackendInput{ 173 ServiceID: "foo", 174 ServiceVersion: 0, 175 }) 176 if err != ErrMissingServiceVersion { 177 t.Errorf("bad error: %s", err) 178 } 179 } 180 181 func TestClient_GetBackend_validation(t *testing.T) { 182 var err error 183 _, err = testClient.GetBackend(&GetBackendInput{ 184 ServiceID: "", 185 }) 186 if err != ErrMissingServiceID { 187 t.Errorf("bad error: %s", err) 188 } 189 190 _, err = testClient.GetBackend(&GetBackendInput{ 191 ServiceID: "foo", 192 ServiceVersion: 0, 193 }) 194 if err != ErrMissingServiceVersion { 195 t.Errorf("bad error: %s", err) 196 } 197 198 _, err = testClient.GetBackend(&GetBackendInput{ 199 ServiceID: "foo", 200 ServiceVersion: 1, 201 Name: "", 202 }) 203 if err != ErrMissingName { 204 t.Errorf("bad error: %s", err) 205 } 206 } 207 208 func TestClient_UpdateBackend_validation(t *testing.T) { 209 var err error 210 _, err = testClient.UpdateBackend(&UpdateBackendInput{ 211 ServiceID: "", 212 }) 213 if err != ErrMissingServiceID { 214 t.Errorf("bad error: %s", err) 215 } 216 217 _, err = testClient.UpdateBackend(&UpdateBackendInput{ 218 ServiceID: "foo", 219 ServiceVersion: 0, 220 }) 221 if err != ErrMissingServiceVersion { 222 t.Errorf("bad error: %s", err) 223 } 224 225 _, err = testClient.UpdateBackend(&UpdateBackendInput{ 226 ServiceID: "foo", 227 ServiceVersion: 1, 228 Name: "", 229 }) 230 if err != ErrMissingName { 231 t.Errorf("bad error: %s", err) 232 } 233 } 234 235 func TestClient_DeleteBackend_validation(t *testing.T) { 236 var err error 237 err = testClient.DeleteBackend(&DeleteBackendInput{ 238 ServiceID: "", 239 }) 240 if err != ErrMissingServiceID { 241 t.Errorf("bad error: %s", err) 242 } 243 244 err = testClient.DeleteBackend(&DeleteBackendInput{ 245 ServiceID: "foo", 246 ServiceVersion: 0, 247 }) 248 if err != ErrMissingServiceVersion { 249 t.Errorf("bad error: %s", err) 250 } 251 252 err = testClient.DeleteBackend(&DeleteBackendInput{ 253 ServiceID: "foo", 254 ServiceVersion: 1, 255 Name: "", 256 }) 257 if err != ErrMissingName { 258 t.Errorf("bad error: %s", err) 259 } 260 }