public void DescribeEndpoint3()
        {
            var mock = new Mock <DescribeEndpointServiceImpl>();

            var status = 200;

            var response = new HttpResponse();
            var content  = Encoding.GetEncoding("UTF-8").GetBytes(
                "{\"Code\":\"Success\",\"Message\":\"ThisIsMessage\",\"RequestId\":\"ThisIsRequestId\",\"AccessKeyId\":\"MockAccessKeyId\",\"AccessKeySecret\":\"\",\"SecurityToken\":\"\",\"Expiration\":\"" +
                DateTimeMock.getNowDateTimeString() + "\"}");

            response.ContentType = FormatType.JSON;
            response.Content     = content;
            response.Status      = status;
            response.Encoding    = "UTF-8";

            mock.Setup(foo => foo.GetResponse(
                           It.IsAny <HttpRequest>()
                           )).Returns(response);

            var instance = mock.Object;

            var credential     = new Credential();
            var locationConfig = new LocationConfig();

            var result = instance.DescribeEndpoint(
                "regionId", "serviceCode", "endpointType", credential, locationConfig
                );

            Assert.Null(result);
        }
        public async Task StubIntegration_RegularGet_Dynamic_UtcNow()
        {
            // arrange
            var          url = $"{TestServer.BaseAddress}dynamic-utc-now.txt";
            const string expectedDateTime = "2019-08-21 20:41:51";
            var          expectedResult   = $"UTC now: {expectedDateTime}";

            var now = new DateTime(2019, 8, 21, 20, 41, 51, DateTimeKind.Utc);

            DateTimeMock
            .Setup(m => m.UtcNow)
            .Returns(now);

            var request = new HttpRequestMessage(HttpMethod.Get, url);

            // act / assert
            using var response = await Client.SendAsync(request);

            var content = await response.Content.ReadAsStringAsync();

            Assert.AreEqual(expectedResult, content);
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.AreEqual("text/plain", response.Content.Headers.ContentType.ToString());

            Assert.AreEqual(expectedDateTime, response.Headers.Single(h => h.Key == "X-Header").Value.Single());
        }
        public void Fetch2()
        {
            // When Request Throw Exception
            var mock = new Mock <ECSMetadataServiceCredentialsFetcher>
            {
                CallBase = true
            };

            var response = new HttpResponse();
            var content  = Encoding.GetEncoding("UTF-8").GetBytes(
                "{\"Code\":\"Success\",\"Message\":\"ThisIsMessage\",\"RequestId\":\"ThisIsRequestId\",\"AccessKeyId\":\"MockAccessKeyId\",\"AccessKeySecret\":\"\",\"SecurityToken\":\"\",\"Expiration\":\"" +
                DateTimeMock.getNowDateTimeString() + "\"}");

            response.ContentType = FormatType.JSON;
            response.Content     = content;
            response.Status      = 200;

            var e = new Exception();

            mock.Setup(foo => foo.GetResponse(
                           It.IsAny <HttpRequest>()
                           )).Throws(e);

            var instance = mock.Object;

            Assert.Throws <ClientException>(
                () =>
            {
                var credentials = instance.Fetch();
                ;
            }
                );
        }
Exemple #4
0
        public void GetCredentials1()
        {
            // When Success Get Credentials

            // Mock Response
            var response = new HttpResponse();
            var 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);
            var 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);
            var fetcher = mockFetcher.Object;

            var roleName = ACKMock.GetRoleName(true);
            var instance = new InstanceProfileCredentialsProvider(roleName);

            instance.withFetcher(fetcher);
            AlibabaCloudCredentialsProvider provider = instance;

            var credentials = provider.GetCredentials();

            Assert.Equal("MockAccessKeyId", credentials.GetAccessKeyId());
        }
Exemple #5
0
        public void GetCredentials2()
        {
            // When Credentials is Expired

            // Mock Response
            var response = new HttpResponse();
            var content  = Encoding.GetEncoding("UTF-8").GetBytes(
                "{\"Code\":\"Success\",\"Message\":\"ThisIsMessage\",\"RequestId\":\"ThisIsRequestId\",\"AccessKeyId\":\"MockAccessKeyId\",\"AccessKeySecret\":\"\",\"SecurityToken\":\"\",\"Expiration\":\"" +
                DateTimeMock.getExpiredDateTimeString() + "\"}");

            response.ContentType = FormatType.JSON;
            response.Content     = content;
            response.Status      = 200;

            // Mock Fetcher
            var mockFetcher = new Mock <ECSMetadataServiceCredentialsFetcher>
            {
                CallBase = true
            };

            mockFetcher.Setup(foo => foo.GetResponse(
                                  It.IsAny <HttpRequest>()
                                  )).Returns(response);
            var fetcher = mockFetcher.Object;

            var roleName = ACKMock.GetRoleName(true);
            var instance = new InstanceProfileCredentialsProvider(roleName);
            AlibabaCloudCredentialsProvider provider = instance;

            instance.withFetcher(fetcher);

            // Throw exception if the date is invalid
            Assert.Throws <ClientException>(() =>
            {
                var credentials = provider.GetCredentials();
            });
        }
        public void Fetch3()
        {
            // When Some Data is null => Code is null
            var mock = new Mock <ECSMetadataServiceCredentialsFetcher>()
            {
                CallBase = true
            };

            HttpResponse response = new HttpResponse();

            byte[] content = Encoding.GetEncoding("UTF-8").GetBytes("{\"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 Setup()
 {
     _dateTime     = new DateTimeMock(DateTime.Today);
     _refillPeriod = TimeSpan.FromSeconds(10);
     _tokenBucket  = new TokenBucket(TokenCapacity, TokenCapacity, _refillPeriod, _dateTime);
 }
        public void Fetch1()
        {
            // When Success
            var mock = new Mock <ECSMetadataServiceCredentialsFetcher>()
            {
                CallBase = true
            };

            HttpResponse response = new HttpResponse();

            byte[] content = Encoding.GetEncoding("UTF-8").GetBytes("{\"Code\":\"Success\",\"Message\":\"ThisIsMessage\",\"RequestId\":\"ThisIsRequestId\",\"AccessKeyId\":\"MockAccessKeyId\",\"AccessKeySecret\":\"\",\"SecurityToken\":\"\",\"Expiration\":\"" + DateTimeMock.getNowDateTimeString() + "\"}");
            response.ContentType = FormatType.JSON;
            response.Content     = content;
            response.Status      = 200;

            mock.Setup(foo => foo.GetResponse(
                           It.IsAny <HttpRequest>()
                           )).Returns(response);

            ECSMetadataServiceCredentialsFetcher instance = mock.Object;

            EcsRamRoleCredential credentials = instance.Fetch();;

            Assert.Equal("MockAccessKeyId", credentials.GetAccessKeyId());
        }
Exemple #9
0
 public void Setup()
 {
     _dateTime       = new DateTimeMock(DateTime.MinValue);
     _refillPeriod   = TimeSpan.FromSeconds(10);
     _refillStrategy = new RefillStrategy(_dateTime, RefillCount, _refillPeriod);
 }