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