1// +build integration 2 3package iam 4 5import ( 6 "context" 7 "errors" 8 "testing" 9 "time" 10 11 "github.com/aws/aws-sdk-go-v2/aws" 12 "github.com/aws/aws-sdk-go-v2/service/iam" 13 14 "github.com/aws/aws-sdk-go-v2/service/internal/integrationtest" 15 "github.com/aws/smithy-go" 16) 17 18func TestInteg_00_ListUsers(t *testing.T) { 19 ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second) 20 defer cancelFn() 21 22 cfg, err := integrationtest.LoadConfigWithDefaultRegion("us-east-1") 23 if err != nil { 24 t.Fatalf("failed to load config, %v", err) 25 } 26 27 client := iam.NewFromConfig(cfg) 28 params := &iam.ListUsersInput{} 29 _, err = client.ListUsers(ctx, params) 30 if err != nil { 31 t.Errorf("expect no error, got %v", err) 32 } 33} 34 35func TestInteg_01_GetUser(t *testing.T) { 36 ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second) 37 defer cancelFn() 38 39 cfg, err := integrationtest.LoadConfigWithDefaultRegion("us-east-1") 40 if err != nil { 41 t.Fatalf("failed to load config, %v", err) 42 } 43 44 client := iam.NewFromConfig(cfg) 45 params := &iam.GetUserInput{ 46 UserName: aws.String("fake_user"), 47 } 48 _, err = client.GetUser(ctx, params) 49 if err == nil { 50 t.Fatalf("expect request to fail") 51 } 52 53 var apiErr smithy.APIError 54 if !errors.As(err, &apiErr) { 55 t.Fatalf("expect error to be API error, was not, %v", err) 56 } 57 if len(apiErr.ErrorCode()) == 0 { 58 t.Errorf("expect non-empty error code") 59 } 60 if len(apiErr.ErrorMessage()) == 0 { 61 t.Errorf("expect non-empty error message") 62 } 63} 64