1// +build integration,ec2env
2
3package imds
4
5import (
6	"context"
7	"io/ioutil"
8	"os"
9	"strings"
10	"testing"
11)
12
13func TestInteg_GetDynamicData(t *testing.T) {
14	client := New(Options{})
15
16	result, err := client.GetDynamicData(context.Background(), nil)
17	if err != nil {
18		t.Fatalf("expect no error, got %v", err)
19	}
20
21	b, err := ioutil.ReadAll(result.Content)
22	if err != nil {
23		t.Fatalf("expect to read content, got %v", err)
24	}
25
26	if len(b) == 0 {
27		t.Errorf("expect result content, but was empty")
28	}
29	t.Logf("Result:\n%s", string(b))
30}
31
32func TestInteg_GetIAMInfo(t *testing.T) {
33	client := New(Options{})
34
35	result, err := client.GetIAMInfo(context.Background(), nil)
36	if err != nil {
37		t.Fatalf("expect no error, got %v", err)
38	}
39
40	t.Logf("IAMInfo:\n%#v", result.IAMInfo)
41}
42
43func TestInteg_GetInstanceIdentityDocument(t *testing.T) {
44	client := New(Options{})
45
46	result, err := client.GetInstanceIdentityDocument(context.Background(), nil)
47	if err != nil {
48		t.Fatalf("expect no error, got %v", err)
49	}
50
51	t.Logf("InstanceIdentityDocument:\n%#v", result.InstanceIdentityDocument)
52}
53
54func TestInteg_GetMetadata(t *testing.T) {
55	client := New(Options{})
56
57	result, err := client.GetMetadata(context.Background(), nil)
58	if err != nil {
59		t.Fatalf("expect no error, got %v", err)
60	}
61
62	b, err := ioutil.ReadAll(result.Content)
63	if err != nil {
64		t.Fatalf("expect to read content, got %v", err)
65	}
66
67	if len(b) == 0 {
68		t.Errorf("expect result content, but was empty")
69	}
70	t.Logf("Result:\n%s", string(b))
71}
72
73func TestInteg_GetRegion(t *testing.T) {
74	client := New(Options{})
75
76	result, err := client.GetRegion(context.Background(), nil)
77	if err != nil {
78		t.Fatalf("expect no error, got %v", err)
79	}
80
81	if len(result.Region) == 0 {
82		t.Errorf("expect region, got none")
83	}
84
85	t.Logf("Region: %s", result.Region)
86}
87
88func TestInteg_GetUserData(t *testing.T) {
89	if !strings.EqualFold(os.Getenv("AWS_TEST_EC2_IMDS_WITH_USER_DATA"), "true") {
90		t.Skip("to run test set AWS_TEST_EC2_IMDS_WITH_USER_DATA=true")
91	}
92
93	client := New(Options{})
94
95	result, err := client.GetUserData(context.Background(), nil)
96	if err != nil {
97		t.Fatalf("expect no error, got %v", err)
98	}
99
100	b, err := ioutil.ReadAll(result.Content)
101	if err != nil {
102		t.Fatalf("expect to read content, got %v", err)
103	}
104
105	if len(b) == 0 {
106		t.Errorf("expect result content, but was empty")
107	}
108	t.Logf("Result:\n%s", string(b))
109}
110