public void GetRamRoleArnAlibabaCloudCredential() { TestHelper.InitializeEnvironmentValue(); var ramRoleCredential = new InstanceProfileCredentials("accessKey", "aks", "roletoken", DateTime.Now.ToString(), 3000); var profile = DefaultProfile.GetProfile(); var response = new AssumeRoleResponse(); response.Credentials = new AssumeRoleResponse.AssumeRole_Credentials(); response.Credentials.AccessKeyId = "ak"; response.Credentials.AccessKeySecret = "aks"; response.Credentials.SecurityToken = "token"; var mockClient = new Mock <IAcsClient>(); mockClient.Setup(x => x.GetAcsResponse(It.IsAny <AcsRequest <AssumeRoleResponse> >())).Returns(response); var client = mockClient.Object; var stsProvider = new STSAssumeRoleSessionCredentialsProvider(ramRoleCredential, "roleArn", client); var defaultCredentialProvider = new DefaultCredentialProvider(profile, stsProvider); var actualCredentil = defaultCredentialProvider.GetRamRoleArnAlibabaCloudCredential(); TestHelper.RemoveEnvironmentValue(); Assert.NotNull(actualCredentil); Assert.Equal("aks", actualCredentil.GetAccessKeySecret()); }
public void ShouldRefresh() { InstanceProfileCredentials instance = new InstanceProfileCredentials("a", "b", "c", DateTime.Now.ToString(), 100000); bool tmp = instance.ShouldRefresh(); Assert.IsType <bool>(tmp); }
public void FetchRetry() { var mock = new Mock <ECSMetadataServiceCredentialsFetcher>() { CallBase = true }; Exception e = new Exception(); mock.Setup(foo => foo.GetResponse( It.IsAny <HttpRequest>() )).Throws(e); ECSMetadataServiceCredentialsFetcher instance = mock.Object; Assert.Throws <ClientException>( () => { InstanceProfileCredentials credentials = instance.Fetch(3); } ); Action retryAction = () => { InstanceProfileCredentials credentials = instance.Fetch(-1);; }; var exception = Record.Exception(retryAction); Assert.Equal("Failed to connect ECS Metadata Service: Max retry times exceeded.", exception.Message); }
public void GetCredentialFileAlibabaCloudCredentialWithRamRole() { var ramRoleCredential = new InstanceProfileCredentials("fakeak", "fakeaks", "fakesessiontokne", DateTime.Now.ToString(), 4000); TestHelper.CreateIniFileWithRam(); var mockHomePath = EnvironmentUtil.GetHomePath(); var profile = DefaultProfile.GetProfile(); profile.DefaultClientName = "default"; var mockDefaultCredentialProvider = new Mock <DefaultCredentialProvider>(profile, null); mockDefaultCredentialProvider.Setup(x => x.GetRamRoleArnAlibabaCloudCredential()) .Returns(ramRoleCredential); mockDefaultCredentialProvider.Setup(x => x.GetHomePath()).Returns(mockHomePath); var defaultCredentialProvider = mockDefaultCredentialProvider.Object; var credential = (InstanceProfileCredentials)defaultCredentialProvider.GetAlibabaCloudClientCredential(); TestHelper.DeleteIniFile(); Assert.NotNull(credential); }
public void GetCredentials4() { // When Credentials will Expired // Mock Response HttpResponse response = new HttpResponse(); string ExpiredDatetime = DateTime.Now.AddMilliseconds(800).ToString(); byte[] content = Encoding.GetEncoding("UTF-8").GetBytes("{\"Code\":\"Success\",\"Message\":\"ThisIsMessage\",\"RequestId\":\"ThisIsRequestId\",\"AccessKeyId\":\"MockAccessKeyId\",\"AccessKeySecret\":\"\",\"SecurityToken\":\"\",\"Expiration\":\"" + ExpiredDatetime + "\"}"); response.ContentType = FormatType.JSON; response.Content = content; response.Status = 200; // Mock Credentials var mockCredentials = new Mock <InstanceProfileCredentials>("MockAccessKeyId", "", "", ExpiredDatetime, 100000) { CallBase = true }; mockCredentials.Setup(foo => foo.RemainTicks()).Returns(15 * 1000 * 1000 * 10); InstanceProfileCredentials instanceProfileCredentials = mockCredentials.Object; instanceProfileCredentials.SetLastFailedRefreshTime(); // Mock Fetcher var mockFetcher = new Mock <ECSMetadataServiceCredentialsFetcher>() { CallBase = true }; mockFetcher.Setup(foo => foo.GetResponse( It.IsAny <HttpRequest>() )).Returns(response); mockFetcher.Setup(foo => foo.Fetch()).Returns(instanceProfileCredentials); ECSMetadataServiceCredentialsFetcher fetcher = mockFetcher.Object; string roleName = ACKMock.GetRoleName(true); InstanceProfileCredentialsProvider instance = new InstanceProfileCredentialsProvider(roleName); AlibabaCloudCredentialsProvider provider = instance; instance.withFetcher(fetcher); // Credentials will Expired at first. No Throw Exception (15000 >= 10000) AlibabaCloudCredentials credentials = provider.GetCredentials(); Assert.Equal("MockAccessKeyId", credentials.GetAccessKeyId()); // Credentials will Expired at Second. Throws Exception (5000 < 10000) mockCredentials.Setup(foo => foo.RemainTicks()).Returns(5000); instanceProfileCredentials = mockCredentials.Object; instanceProfileCredentials.SetLastFailedRefreshTime(); mockFetcher.Setup(foo => foo.Fetch()).Returns(instanceProfileCredentials); fetcher = mockFetcher.Object; instance.withFetcher(fetcher); Assert.Throws <ClientException>(() => { credentials = provider.GetCredentials(); }); }
public void Fetch4() { // When Code != "Success" var mock = new Mock <ECSMetadataServiceCredentialsFetcher>() { CallBase = true }; HttpResponse response = new HttpResponse(); byte[] content = Encoding.GetEncoding("UTF-8").GetBytes("{\"Code\":\"NotSuccess\",\"Message\":\"ThisIsMessage\",\"RequestId\":\"ThisIsRequestId\",\"AccessKeyId\":\"MockAccessKeyId\",\"AccessKeySecret\":\"\",\"SecurityToken\":\"\",\"Expiration\":\"" + DateTimeMock.getNowDateTimeString() + "\"}"); response.ContentType = FormatType.JSON; response.Content = content; response.Status = 200; Exception e = new Exception(); mock.Setup(foo => foo.GetResponse( It.IsAny <HttpRequest>() )).Returns(response); ECSMetadataServiceCredentialsFetcher instance = mock.Object; Assert.Throws <ClientException>( () => { InstanceProfileCredentials credentials = instance.Fetch();; } ); }
public void GetCredentialFileAlibabaCloudCredentialWithRamRole() { var ramRoleCredential = new InstanceProfileCredentials("fakeak", "fakeaks", "fakesessiontokne", DateTime.Now.ToString(), 4000); var homePath = EnvironmentUtil.GetHomePath(); TestHelper.CreateIniFileWithRam(homePath); var slash = EnvironmentUtil.GetOSSlash(); var finalLocation = EnvironmentUtil.GetComposedPath(homePath, slash); var configurtion = Configuration.LoadFromFile(finalLocation); DefaultProfile profile = DefaultProfile.GetProfile(); profile.DefaultClientName = "default"; var mockDefaultCredentialProvider = new Mock <DefaultCredentialProvider>(profile, null); mockDefaultCredentialProvider.Setup(x => x.GetRamRoleArnAlibabaCloudCredential()).Returns(ramRoleCredential); mockDefaultCredentialProvider.Setup(x => x.GetHomePath()).Returns(homePath); mockDefaultCredentialProvider.Setup(x => x.LoadFileFromIni(It.IsAny <string>())).Returns(configurtion); var defaultCredentialProvider = mockDefaultCredentialProvider.Object; var credential = (InstanceProfileCredentials)defaultCredentialProvider.GetAlibabaCloudClientCredential(); TestHelper.DeleteIniFile(homePath); Assert.NotNull(credential); }
public void SetLastFailedRefreshTime() { InstanceProfileCredentials instance = new InstanceProfileCredentials("a", "b", "c", DateTime.Now.ToString(), 100000); instance.SetLastFailedRefreshTime(); // DONE WITH NO EXCEPTION }
public void ShouldRefresh() { InstanceProfileCredentials instance = new InstanceProfileCredentials("a", "b", "c", DateTime.Now.ToString(), 100000); Assert.True(instance.ShouldRefresh()); instance.SetLastFailedRefreshTime(); Assert.False(instance.ShouldRefresh()); }
public void GetRamRoleArnAlibabaCloudCredential2() { TestHelper.InitializeEnvironmentValue(); var ramRoleCredential = new InstanceProfileCredentials("accessKey", "aks", "roletoken", DateTime.Now.ToString(), 3000); var profile = DefaultProfile.GetProfile(); var defaultCredentialProvider = new DefaultCredentialProvider(profile, null); var exception = Assert.Throws <ClientException>(() => { var actualCredentil = defaultCredentialProvider.GetRamRoleArnAlibabaCloudCredential(); }); TestHelper.RemoveEnvironmentValue(); Assert.Equal("Specified access key is not found.", exception.ErrorMessage); }
public void GetCredentials1() { // When Success Get Credentials // Mock Response HttpResponse response = new HttpResponse(); byte[] content = Encoding.GetEncoding("UTF-8").GetBytes("{\"Code\":\"Success\",\"Message\":\"ThisIsMessage\",\"RequestId\":\"ThisIsRequestId\",\"AccessKeyId\":\"MockAccessKeyId\",\"AccessKeySecret\":\"\",\"SecurityToken\":\"\",\"Expiration\":\"" + DateTimeMock.getNotExpiredDateTimeString() + "\"}"); response.ContentType = FormatType.JSON; response.Content = content; response.Status = 200; // Mock Credentials var mockCredentials = new Mock <InstanceProfileCredentials>("MockAccessKeyId", "MockAccessKeySecret", "MockSecurityToken", DateTimeMock.getNotExpiredDateTimeString(), 100000) { CallBase = true }; mockCredentials.Setup(foo => foo.RemainTicks()).Returns(15 * 1000 * 1000 * 10); InstanceProfileCredentials instanceProfileCredentials = mockCredentials.Object; // Mock Fetcher var mockFetcher = new Mock <ECSMetadataServiceCredentialsFetcher>() { CallBase = true }; mockFetcher.Setup(foo => foo.GetResponse( It.IsAny <HttpRequest>() )).Returns(response); mockFetcher.Setup(foo => foo.Fetch()).Returns(instanceProfileCredentials); ECSMetadataServiceCredentialsFetcher fetcher = mockFetcher.Object; string roleName = ACKMock.GetRoleName(true); InstanceProfileCredentialsProvider instance = new InstanceProfileCredentialsProvider(roleName); instance.withFetcher(fetcher); AlibabaCloudCredentialsProvider provider = instance; AlibabaCloudCredentials credentials = provider.GetCredentials(); Assert.Equal("MockAccessKeyId", credentials.GetAccessKeyId()); }
public void GetInstanceRamRoleAlibabaCloudCredential2() { var profile = DefaultProfile.GetProfile(); profile.DefaultClientName = "default"; Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", "region_id"); Environment.SetEnvironmentVariable("ALIBABA_CLOUD_ECS_METADATA", "role_name"); var instanceProfileCredential = new InstanceProfileCredentials("fakeak", "fakeaks", "fakesession", DateTime.Now.ToString(), 4000); var mockInstanceProfileProvider = new Mock <InstanceProfileCredentialsProvider>("role_name"); mockInstanceProfileProvider.Setup(x => x.GetCredentials()).Returns(instanceProfileCredential); var instanceProfileProvider = mockInstanceProfileProvider.Object; var defaultCredentialProvider = new DefaultCredentialProvider(profile, instanceProfileProvider); var actualCredential = defaultCredentialProvider.GetInstanceRamRoleAlibabaCloudCredential(); Environment.SetEnvironmentVariable("ALIBABA_CLOUD_REGION_ID", null); Environment.SetEnvironmentVariable("ALIBABA_CLOUD_ECS_METADATA", null); Assert.NotNull(actualCredential); Assert.Equal("fakeak", actualCredential.GetAccessKeyId()); }
public void IsExpired() { InstanceProfileCredentials instance = new InstanceProfileCredentials("a", "b", "c", DateTime.Now.ToString(), 100000); Assert.True(instance.IsExpired()); }
public void WillSoonExpire() { var instance = new InstanceProfileCredentials("a", "b", "c", DateTime.Now.ToString(), 100000); Assert.True(instance.WillSoonExpire()); }
public void ShouldRefresh() { var instance = new InstanceProfileCredentials("a", "b", "c", DateTime.Now.ToString(), 100000); Assert.True(instance.ShouldRefresh()); }
public void SetLastFailedRefreshTime() { var instance = new InstanceProfileCredentials("a", "b", "c", DateTime.Now.ToString(), 100000); instance.SetLastFailedRefreshTime(); }