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