1// +build integration
2
3package ses
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/internal/integrationtest"
13	"github.com/aws/aws-sdk-go-v2/service/ses"
14	"github.com/aws/smithy-go"
15)
16
17func TestInteg_00_ListIdentities(t *testing.T) {
18	ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)
19	defer cancelFn()
20
21	cfg, err := integrationtest.LoadConfigWithDefaultRegion("us-west-2")
22	if err != nil {
23		t.Fatalf("failed to load config, %v", err)
24	}
25
26	client := ses.NewFromConfig(cfg)
27	params := &ses.ListIdentitiesInput{}
28	_, err = client.ListIdentities(ctx, params)
29	if err != nil {
30		t.Errorf("expect no error, got %v", err)
31	}
32}
33
34func TestInteg_01_VerifyEmailIdentity(t *testing.T) {
35	ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)
36	defer cancelFn()
37
38	cfg, err := integrationtest.LoadConfigWithDefaultRegion("us-west-2")
39	if err != nil {
40		t.Fatalf("failed to load config, %v", err)
41	}
42
43	client := ses.NewFromConfig(cfg)
44	params := &ses.VerifyEmailIdentityInput{
45		EmailAddress: aws.String("fake_email"),
46	}
47	_, err = client.VerifyEmailIdentity(ctx, params)
48	if err == nil {
49		t.Fatalf("expect request to fail")
50	}
51
52	var apiErr smithy.APIError
53	if !errors.As(err, &apiErr) {
54		t.Fatalf("expect error to be API error, was not, %v", err)
55	}
56	if len(apiErr.ErrorCode()) == 0 {
57		t.Errorf("expect non-empty error code")
58	}
59	if len(apiErr.ErrorMessage()) == 0 {
60		t.Errorf("expect non-empty error message")
61	}
62}
63