func TestErrorPropogatesUp(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() mockGetter := mock_ec2.NewMockHttpClient(ctrl) testClient := ec2.NewEC2MetadataClient(mockGetter) mockGetter.EXPECT().Get(ec2.EC2_METADATA_SERVICE_URL+ec2.INSTANCE_IDENTITY_DOCUMENT_RESOURCE).Return(nil, errors.New("Something broke")).AnyTimes() _, err := testClient.InstanceIdentityDocument() if err == nil { t.Fatal("Expected error to result") } }
func TestGetInstanceIdentityDoc(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() mockGetter := mock_ec2.NewMockHttpClient(ctrl) testClient := ec2.NewEC2MetadataClient(mockGetter) mockGetter.EXPECT().Get(ec2.EC2_METADATA_SERVICE_URL + ec2.INSTANCE_IDENTITY_DOCUMENT_RESOURCE).Return(testSuccessResponse(testInstanceIdentityDoc)) doc, err := testClient.InstanceIdentityDocument() if err != nil { t.Fatal("Expected to be able to get doc") } if doc.Region != "us-east-1" { t.Error("Wrong region; expected us-east-1 but got " + doc.Region) } }
func TestDefaultCredentials(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() mockGetter := mock_ec2.NewMockHttpClient(ctrl) testClient := ec2.NewEC2MetadataClient(mockGetter) mockGetter.EXPECT().Get(ec2.EC2_METADATA_SERVICE_URL + ec2.SECURITY_CREDENTIALS_RESOURCE).Return(testSuccessResponse(testRoleName)) mockGetter.EXPECT().Get(ec2.EC2_METADATA_SERVICE_URL + ec2.SECURITY_CREDENTIALS_RESOURCE + testRoleName).Return(testSuccessResponse(string(ignoreError(json.Marshal(makeTestRoleCredentials())).([]byte)))) credentials, err := testClient.DefaultCredentials() if err != nil { t.Fail() } testCredentials := makeTestRoleCredentials() if credentials.AccessKeyId != testCredentials.AccessKeyId { t.Fail() } }
func TestRetriesOnError(t *testing.T) { ctrl := gomock.NewController(t) defer ctrl.Finish() mockGetter := mock_ec2.NewMockHttpClient(ctrl) testClient := ec2.NewEC2MetadataClient(mockGetter) testTime := ttime.NewTestTime() testTime.LudicrousSpeed(true) ttime.SetTime(testTime) gomock.InOrder( mockGetter.EXPECT().Get(ec2.EC2_METADATA_SERVICE_URL+ec2.INSTANCE_IDENTITY_DOCUMENT_RESOURCE).Return(nil, errors.New("Something broke")), mockGetter.EXPECT().Get(ec2.EC2_METADATA_SERVICE_URL+ec2.INSTANCE_IDENTITY_DOCUMENT_RESOURCE).Return(testErrorResponse()), mockGetter.EXPECT().Get(ec2.EC2_METADATA_SERVICE_URL+ec2.INSTANCE_IDENTITY_DOCUMENT_RESOURCE).Return(testSuccessResponse(testInstanceIdentityDoc)), ) doc, err := testClient.InstanceIdentityDocument() if err != nil { t.Fatal("Expected to be able to get doc") } if doc.Region != "us-east-1" { t.Error("Wrong region; expected us-east-1 but got " + doc.Region) } }