@@ -164,7 +164,7 @@ func TestAppsecGetAdvancedSettingsRequestBodyPolicy(t *testing.T) {
164
164
165
165
result := GetAdvancedSettingsRequestBodyResponse {}
166
166
167
- respData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBody .json" ))
167
+ respData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBodyPolicy .json" ))
168
168
err := json .Unmarshal ([]byte (respData ), & result )
169
169
require .NoError (t , err )
170
170
@@ -318,13 +318,13 @@ func TestAppsecUpdateAdvancedSettingsRequestBody(t *testing.T) {
318
318
func TestAppsecUpdateAdvancedSettingsRequestBodyPolicy (t * testing.T ) {
319
319
result := UpdateAdvancedSettingsRequestBodyResponse {}
320
320
321
- respData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBody .json" ))
321
+ respData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBodyPolicy .json" ))
322
322
err := json .Unmarshal ([]byte (respData ), & result )
323
323
require .NoError (t , err )
324
324
325
325
req := UpdateAdvancedSettingsRequestBodyRequest {}
326
326
327
- reqData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBody .json" ))
327
+ reqData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBodyPolicy .json" ))
328
328
err = json .Unmarshal ([]byte (reqData ), & req )
329
329
require .NoError (t , err )
330
330
@@ -351,6 +351,26 @@ func TestAppsecUpdateAdvancedSettingsRequestBodyPolicy(t *testing.T) {
351
351
expectedResponse : & result ,
352
352
expectedPath : "/appsec/v1/configs/43253/versions/15/security-policies/test_policy/advanced-settings/request-body" ,
353
353
},
354
+ "400 invalid input error" : {
355
+ params : UpdateAdvancedSettingsRequestBodyRequest {
356
+ ConfigID : 43253 ,
357
+ Version : 15 ,
358
+ },
359
+ responseStatus : http .StatusBadRequest ,
360
+ responseBody : `
361
+ {
362
+ "detail": "The value of the request body size parameter must be one of [default, 8, 16, 32]",
363
+ "title": "Invalid Input Error",
364
+ "type": "internal_error"
365
+ }` ,
366
+ expectedPath : "/appsec/v1/configs/43253/versions/15/advanced-settings/request-body" ,
367
+ withError : & Error {
368
+ Type : "internal_error" ,
369
+ Title : "Invalid Input Error" ,
370
+ Detail : "The value of the request body size parameter must be one of [default, 8, 16, 32]" ,
371
+ StatusCode : http .StatusBadRequest ,
372
+ },
373
+ },
354
374
"500 internal server error" : {
355
375
params : UpdateAdvancedSettingsRequestBodyRequest {
356
376
ConfigID : 43253 ,
@@ -398,3 +418,139 @@ func TestAppsecUpdateAdvancedSettingsRequestBodyPolicy(t *testing.T) {
398
418
})
399
419
}
400
420
}
421
+
422
+ func TestAppsecUpdateAdvancedSettingsRequestBodyPolicyWithInvalidValue (t * testing.T ) {
423
+ result := UpdateAdvancedSettingsRequestBodyResponse {}
424
+
425
+ respData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBodyPolicyWithInvalidValue.json" ))
426
+ err := json .Unmarshal ([]byte (respData ), & result )
427
+ require .NoError (t , err )
428
+
429
+ req := UpdateAdvancedSettingsRequestBodyRequest {}
430
+
431
+ reqData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBodyPolicyWithInvalidValue.json" ))
432
+ err = json .Unmarshal ([]byte (reqData ), & req )
433
+ require .NoError (t , err )
434
+
435
+ tests := map [string ]struct {
436
+ params UpdateAdvancedSettingsRequestBodyRequest
437
+ responseStatus int
438
+ responseBody string
439
+ expectedPath string
440
+ expectedResponse * UpdateAdvancedSettingsRequestBodyResponse
441
+ withError error
442
+ headers http.Header
443
+ }{
444
+ "400 invalid input error" : {
445
+ params : UpdateAdvancedSettingsRequestBodyRequest {
446
+ ConfigID : 43253 ,
447
+ Version : 15 ,
448
+ RequestBodyInspectionLimitInKB : req .RequestBodyInspectionLimitInKB ,
449
+ RequestBodyInspectionLimitOverride : req .RequestBodyInspectionLimitOverride ,
450
+ },
451
+ responseStatus : http .StatusBadRequest ,
452
+ responseBody : `
453
+ {
454
+ "detail": "The value of the request body size parameter must be one of [default, 8, 16, 32]",
455
+ "title": "Invalid Input Error",
456
+ "type": "internal_error"
457
+ }` ,
458
+ expectedPath : "/appsec/v1/configs/43253/versions/15/advanced-settings/request-body" ,
459
+ withError : & Error {
460
+ Type : "internal_error" ,
461
+ Title : "Invalid Input Error" ,
462
+ Detail : "The value of the request body size parameter must be one of [default, 8, 16, 32]" ,
463
+ StatusCode : http .StatusBadRequest ,
464
+ },
465
+ },
466
+ }
467
+
468
+ for name , test := range tests {
469
+ t .Run (name , func (t * testing.T ) {
470
+ mockServer := httptest .NewTLSServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
471
+ assert .Equal (t , http .MethodPut , r .Method )
472
+ w .WriteHeader (test .responseStatus )
473
+ if len (test .responseBody ) > 0 {
474
+ _ , err := w .Write ([]byte (test .responseBody ))
475
+ assert .NoError (t , err )
476
+ }
477
+ }))
478
+ client := mockAPIClient (t , mockServer )
479
+ result , err := client .UpdateAdvancedSettingsRequestBody (
480
+ session .ContextWithOptions (
481
+ context .Background (),
482
+ session .WithContextHeaders (test .headers )), test .params )
483
+ if test .withError != nil {
484
+ assert .True (t , errors .Is (err , test .withError ), "want: %s; got: %s" , test .withError , err )
485
+ return
486
+ }
487
+ require .NoError (t , err )
488
+ assert .Equal (t , test .expectedResponse , result )
489
+ })
490
+ }
491
+ }
492
+
493
+ func TestAppsecUpdateAdvancedSettingsRequestBodyPolicyWithOverrideUnset (t * testing.T ) {
494
+ result := RemoveAdvancedSettingsRequestBodyResponse {}
495
+
496
+ respData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBodyPolicyWithOverrideUnsetResponse.json" ))
497
+ err := json .Unmarshal ([]byte (respData ), & result )
498
+ require .NoError (t , err )
499
+
500
+ req := RemoveAdvancedSettingsRequestBodyRequest {}
501
+
502
+ reqData := compactJSON (loadFixtureBytes ("testdata/TestAdvancedSettingsRequestBody/AdvancedSettingsRequestBodyPolicyWithOverrideUnsetRequest.json" ))
503
+ err = json .Unmarshal ([]byte (reqData ), & req )
504
+ require .NoError (t , err )
505
+
506
+ tests := map [string ]struct {
507
+ params RemoveAdvancedSettingsRequestBodyRequest
508
+ responseStatus int
509
+ responseBody string
510
+ expectedPath string
511
+ expectedResponse * RemoveAdvancedSettingsRequestBodyResponse
512
+ withError error
513
+ headers http.Header
514
+ }{
515
+ "200 Success" : {
516
+ params : RemoveAdvancedSettingsRequestBodyRequest {
517
+ ConfigID : 43253 ,
518
+ Version : 15 ,
519
+ PolicyID : "test_policy" ,
520
+ RequestBodyInspectionLimitInKB : req .RequestBodyInspectionLimitInKB ,
521
+ RequestBodyInspectionLimitOverride : req .RequestBodyInspectionLimitOverride ,
522
+ },
523
+ headers : http.Header {
524
+ "Content-Type" : []string {"application/json;charset=UTF-8" },
525
+ },
526
+ responseStatus : http .StatusCreated ,
527
+ responseBody : respData ,
528
+ expectedResponse : & result ,
529
+ expectedPath : "/appsec/v1/configs/43253/versions/15/security-policies/test_policy/advanced-settings/request-body" ,
530
+ },
531
+ }
532
+
533
+ for name , test := range tests {
534
+ t .Run (name , func (t * testing.T ) {
535
+ mockServer := httptest .NewTLSServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
536
+ assert .Equal (t , http .MethodPut , r .Method )
537
+ w .WriteHeader (test .responseStatus )
538
+ if len (test .responseBody ) > 0 {
539
+ _ , err := w .Write ([]byte (test .responseBody ))
540
+ assert .NoError (t , err )
541
+ }
542
+ }))
543
+ client := mockAPIClient (t , mockServer )
544
+ result , err := client .RemoveAdvancedSettingsRequestBody (
545
+ session .ContextWithOptions (
546
+ context .Background (),
547
+ session .WithContextHeaders (test .headers )), test .params )
548
+ if test .withError != nil {
549
+ assert .True (t , errors .Is (err , test .withError ), "want: %s; got: %s" , test .withError , err )
550
+ return
551
+ }
552
+ require .NoError (t , err )
553
+ assert .Equal (t , test .expectedResponse , result )
554
+ })
555
+ }
556
+ }
0 commit comments