github.com/fastly/go-fastly/v6@v6.8.0/fastly/newrelic_test.go (about) 1 package fastly 2 3 import ( 4 "testing" 5 ) 6 7 func TestClient_NewRelic(t *testing.T) { 8 t.Parallel() 9 10 var err error 11 var tv *Version 12 record(t, "newrelic/version", func(c *Client) { 13 tv = testVersion(t, c) 14 }) 15 16 // Create 17 var newRelicResp1, newRelicResp2 *NewRelic 18 record(t, "newrelic/create", func(c *Client) { 19 newRelicResp1, err = c.CreateNewRelic(&CreateNewRelicInput{ 20 ServiceID: testServiceID, 21 ServiceVersion: tv.Number, 22 Name: "test-newrelic", 23 Token: "abcd1234", 24 Format: "format", 25 Placement: "waf_debug", 26 Region: "us", 27 }) 28 }) 29 if err != nil { 30 t.Fatal(err) 31 } 32 33 record(t, "newrelic/create2", func(c *Client) { 34 newRelicResp2, err = c.CreateNewRelic(&CreateNewRelicInput{ 35 ServiceID: testServiceID, 36 ServiceVersion: tv.Number, 37 Name: "test-newrelic-2", 38 Token: "abcd1234", 39 Format: "format", 40 Placement: "waf_debug", 41 Region: "eu", 42 }) 43 }) 44 if err != nil { 45 t.Fatal(err) 46 } 47 48 // This case is expected to fail due to an invalid region 49 record(t, "newrelic/create3", func(c *Client) { 50 _, err = c.CreateNewRelic(&CreateNewRelicInput{ 51 ServiceID: testServiceID, 52 ServiceVersion: tv.Number, 53 Name: "test-newrelic-3", 54 Token: "abcd1234", 55 Format: "format", 56 Placement: "waf_debug", 57 Region: "abc", 58 }) 59 }) 60 if err == nil { 61 t.Fatal(err) 62 } 63 64 // Ensure deleted 65 defer func() { 66 record(t, "newrelic/delete", func(c *Client) { 67 c.DeleteNewRelic(&DeleteNewRelicInput{ 68 ServiceID: testServiceID, 69 ServiceVersion: tv.Number, 70 Name: "test-newrelic", 71 }) 72 73 c.DeleteNewRelic(&DeleteNewRelicInput{ 74 ServiceID: testServiceID, 75 ServiceVersion: tv.Number, 76 Name: "test-newrelic-2", 77 }) 78 79 c.DeleteNewRelic(&DeleteNewRelicInput{ 80 ServiceID: testServiceID, 81 ServiceVersion: tv.Number, 82 Name: "new-test-newrelic", 83 }) 84 }) 85 }() 86 87 if newRelicResp1.Name != "test-newrelic" { 88 t.Errorf("bad name: %q", newRelicResp1.Name) 89 } 90 if newRelicResp1.Token != "abcd1234" { 91 t.Errorf("bad token: %q", newRelicResp1.Token) 92 } 93 if newRelicResp1.Format != "format" { 94 t.Errorf("bad format: %q", newRelicResp1.Format) 95 } 96 if newRelicResp1.FormatVersion != 2 { 97 t.Errorf("bad format_version: %q", newRelicResp1.FormatVersion) 98 } 99 if newRelicResp1.Placement != "waf_debug" { 100 t.Errorf("bad placement: %q", newRelicResp1.Placement) 101 } 102 if newRelicResp1.Region != "us" { 103 t.Errorf("bad region: %q", newRelicResp1.Region) 104 } 105 106 if newRelicResp2.Name != "test-newrelic-2" { 107 t.Errorf("bad name: %q", newRelicResp2.Name) 108 } 109 if newRelicResp2.Token != "abcd1234" { 110 t.Errorf("bad token: %q", newRelicResp2.Token) 111 } 112 if newRelicResp2.Format != "format" { 113 t.Errorf("bad format: %q", newRelicResp2.Format) 114 } 115 if newRelicResp2.FormatVersion != 2 { 116 t.Errorf("bad format_version: %q", newRelicResp2.FormatVersion) 117 } 118 if newRelicResp2.Placement != "waf_debug" { 119 t.Errorf("bad placement: %q", newRelicResp2.Placement) 120 } 121 if newRelicResp2.Region != "eu" { 122 t.Errorf("bad region: %q", newRelicResp2.Region) 123 } 124 125 // List 126 var ln []*NewRelic 127 record(t, "newrelic/list", func(c *Client) { 128 ln, err = c.ListNewRelic(&ListNewRelicInput{ 129 ServiceID: testServiceID, 130 ServiceVersion: tv.Number, 131 }) 132 }) 133 if err != nil { 134 t.Fatal(err) 135 } 136 if len(ln) < 1 { 137 t.Errorf("bad newrelics: %v", ln) 138 } 139 140 // Get 141 var newRelicGetResp, newRelicGetResp2 *NewRelic 142 record(t, "newrelic/get", func(c *Client) { 143 newRelicGetResp, err = c.GetNewRelic(&GetNewRelicInput{ 144 ServiceID: testServiceID, 145 ServiceVersion: tv.Number, 146 Name: "test-newrelic", 147 }) 148 }) 149 if err != nil { 150 t.Fatal(err) 151 } 152 153 record(t, "newrelic/get2", func(c *Client) { 154 newRelicGetResp2, err = c.GetNewRelic(&GetNewRelicInput{ 155 ServiceID: testServiceID, 156 ServiceVersion: tv.Number, 157 Name: "test-newrelic-2", 158 }) 159 }) 160 if err != nil { 161 t.Fatal(err) 162 } 163 164 if newRelicResp1.Name != newRelicGetResp.Name { 165 t.Errorf("bad name: %q", newRelicResp1.Name) 166 } 167 if newRelicResp1.Token != newRelicGetResp.Token { 168 t.Errorf("bad token: %q", newRelicResp1.Token) 169 } 170 if newRelicResp1.Format != newRelicGetResp.Format { 171 t.Errorf("bad format: %q", newRelicResp1.Format) 172 } 173 if newRelicResp1.FormatVersion != newRelicGetResp.FormatVersion { 174 t.Errorf("bad format_version: %q", newRelicResp1.FormatVersion) 175 } 176 if newRelicResp1.Placement != newRelicGetResp.Placement { 177 t.Errorf("bad placement: %q", newRelicResp1.Placement) 178 } 179 if newRelicResp1.Region != newRelicGetResp.Region { 180 t.Errorf("bad region: %q", newRelicResp1.Region) 181 } 182 183 if newRelicResp2.Name != newRelicGetResp2.Name { 184 t.Errorf("bad name: %q", newRelicResp2.Name) 185 } 186 if newRelicResp2.Token != newRelicGetResp2.Token { 187 t.Errorf("bad token: %q", newRelicResp2.Token) 188 } 189 if newRelicResp2.Format != newRelicGetResp2.Format { 190 t.Errorf("bad format: %q", newRelicResp2.Format) 191 } 192 if newRelicResp2.FormatVersion != newRelicGetResp2.FormatVersion { 193 t.Errorf("bad format_version: %q", newRelicResp2.FormatVersion) 194 } 195 if newRelicResp2.Placement != newRelicGetResp2.Placement { 196 t.Errorf("bad placement: %q", newRelicResp2.Placement) 197 } 198 if newRelicResp2.Region != newRelicGetResp2.Region { 199 t.Errorf("bad region: %q", newRelicResp2.Region) 200 } 201 202 // Update 203 var newRelicUpdateResp1 *NewRelic 204 record(t, "newrelic/update", func(c *Client) { 205 newRelicUpdateResp1, err = c.UpdateNewRelic(&UpdateNewRelicInput{ 206 ServiceID: testServiceID, 207 ServiceVersion: tv.Number, 208 Name: "test-newrelic", 209 NewName: String("new-test-newrelic"), 210 FormatVersion: Uint(2), 211 Region: String("eu"), 212 }) 213 }) 214 if err != nil { 215 t.Fatal(err) 216 } 217 218 // This case is expected to fail due to an invalid region. 219 record(t, "newrelic/update2", func(c *Client) { 220 _, err = c.UpdateNewRelic(&UpdateNewRelicInput{ 221 ServiceID: testServiceID, 222 ServiceVersion: tv.Number, 223 Name: "new-test-newrelic", 224 Region: String("zz"), 225 }) 226 }) 227 if err == nil { 228 t.Fatal(err) 229 } 230 231 if newRelicUpdateResp1.Name != "new-test-newrelic" { 232 t.Errorf("bad name: %q", newRelicUpdateResp1.Name) 233 } 234 if newRelicUpdateResp1.FormatVersion != 2 { 235 t.Errorf("bad format_version: %q", newRelicUpdateResp1.FormatVersion) 236 } 237 if newRelicUpdateResp1.Region != "eu" { 238 t.Errorf("bad region: %q", newRelicUpdateResp1.Region) 239 } 240 241 // Delete 242 record(t, "newrelic/delete", func(c *Client) { 243 err = c.DeleteNewRelic(&DeleteNewRelicInput{ 244 ServiceID: testServiceID, 245 ServiceVersion: tv.Number, 246 Name: "new-test-newrelic", 247 }) 248 }) 249 if err != nil { 250 t.Fatal(err) 251 } 252 } 253 254 func TestClient_ListNewRelic_validation(t *testing.T) { 255 var err error 256 _, err = testClient.ListNewRelic(&ListNewRelicInput{ 257 ServiceID: "", 258 }) 259 if err != ErrMissingServiceID { 260 t.Errorf("bad error: %s", err) 261 } 262 263 _, err = testClient.ListNewRelic(&ListNewRelicInput{ 264 ServiceID: "foo", 265 ServiceVersion: 0, 266 }) 267 if err != ErrMissingServiceVersion { 268 t.Errorf("bad error: %s", err) 269 } 270 } 271 272 func TestClient_CreateNewRelic_validation(t *testing.T) { 273 var err error 274 _, err = testClient.CreateNewRelic(&CreateNewRelicInput{ 275 ServiceID: "", 276 }) 277 if err != ErrMissingServiceID { 278 t.Errorf("bad error: %s", err) 279 } 280 281 _, err = testClient.CreateNewRelic(&CreateNewRelicInput{ 282 ServiceID: "foo", 283 ServiceVersion: 0, 284 }) 285 if err != ErrMissingServiceVersion { 286 t.Errorf("bad error: %s", err) 287 } 288 } 289 290 func TestClient_GetNewRelic_validation(t *testing.T) { 291 var err error 292 _, err = testClient.GetNewRelic(&GetNewRelicInput{ 293 ServiceID: "", 294 }) 295 if err != ErrMissingServiceID { 296 t.Errorf("bad error: %s", err) 297 } 298 299 _, err = testClient.GetNewRelic(&GetNewRelicInput{ 300 ServiceID: "foo", 301 ServiceVersion: 0, 302 }) 303 if err != ErrMissingServiceVersion { 304 t.Errorf("bad error: %s", err) 305 } 306 307 _, err = testClient.GetNewRelic(&GetNewRelicInput{ 308 ServiceID: "foo", 309 ServiceVersion: 1, 310 Name: "", 311 }) 312 if err != ErrMissingName { 313 t.Errorf("bad error: %s", err) 314 } 315 } 316 317 func TestClient_UpdateNewRelic_validation(t *testing.T) { 318 var err error 319 _, err = testClient.UpdateNewRelic(&UpdateNewRelicInput{ 320 ServiceID: "", 321 }) 322 if err != ErrMissingServiceID { 323 t.Errorf("bad error: %s", err) 324 } 325 326 _, err = testClient.UpdateNewRelic(&UpdateNewRelicInput{ 327 ServiceID: "foo", 328 ServiceVersion: 0, 329 }) 330 if err != ErrMissingServiceVersion { 331 t.Errorf("bad error: %s", err) 332 } 333 334 _, err = testClient.UpdateNewRelic(&UpdateNewRelicInput{ 335 ServiceID: "foo", 336 ServiceVersion: 1, 337 Name: "", 338 }) 339 if err != ErrMissingName { 340 t.Errorf("bad error: %s", err) 341 } 342 } 343 344 func TestClient_DeleteNewRelic_validation(t *testing.T) { 345 var err error 346 err = testClient.DeleteNewRelic(&DeleteNewRelicInput{ 347 ServiceID: "", 348 }) 349 if err != ErrMissingServiceID { 350 t.Errorf("bad error: %s", err) 351 } 352 353 err = testClient.DeleteNewRelic(&DeleteNewRelicInput{ 354 ServiceID: "foo", 355 ServiceVersion: 0, 356 }) 357 if err != ErrMissingServiceVersion { 358 t.Errorf("bad error: %s", err) 359 } 360 361 err = testClient.DeleteNewRelic(&DeleteNewRelicInput{ 362 ServiceID: "foo", 363 ServiceVersion: 1, 364 Name: "", 365 }) 366 if err != ErrMissingName { 367 t.Errorf("bad error: %s", err) 368 } 369 }