1// +build integration
2
3package route53
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/route53"
14	"github.com/aws/smithy-go"
15)
16
17func TestInteg_00_ListHostedZones(t *testing.T) {
18	ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)
19	defer cancelFn()
20
21	cfg, err := integrationtest.LoadConfigWithDefaultRegion("us-east-1")
22	if err != nil {
23		t.Fatalf("failed to load config, %v", err)
24	}
25
26	client := route53.NewFromConfig(cfg)
27	params := &route53.ListHostedZonesInput{}
28	_, err = client.ListHostedZones(ctx, params)
29	if err != nil {
30		t.Errorf("expect no error, got %v", err)
31	}
32}
33
34func TestInteg_01_GetHostedZone(t *testing.T) {
35	ctx, cancelFn := context.WithTimeout(context.Background(), 5*time.Second)
36	defer cancelFn()
37
38	cfg, err := integrationtest.LoadConfigWithDefaultRegion("us-east-1")
39	if err != nil {
40		t.Fatalf("failed to load config, %v", err)
41	}
42
43	client := route53.NewFromConfig(cfg)
44	params := &route53.GetHostedZoneInput{
45		Id: aws.String("fake-zone"),
46	}
47	_, err = client.GetHostedZone(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