public void CreateClient_Should_Create_ClientConfig_With_ServiceURL_UseHttp_ProxyHost_ProxyPort() { MockSession mockSession = MockSession.Create(); IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKeyId).Returns("AwsAccessKeyId"); mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKey).Returns("AwsAccessKey"); mockSession.SessionOptionsMock.SetupGet(options => options.AwsSessionToken).Returns("AwsSessionToken"); mockSession.SessionReflectionMock.Setup(reflection => reflection.ExtractServiceMetadata <MockAmazonServiceClient>()).Returns(() => mockServiceMetadata); mockSession.SessionReflectionMock.Setup(reflection => reflection.CreateClientConfig <MockAmazonServiceClient>()).Returns(() => mockClientConfig); mockSession.SessionReflectionMock.Setup(reflection => reflection.SetForcePathStyle(mockClientConfig, true)).Returns(() => true); mockSession.ConfigMock.Setup(config => config.GetAwsServiceEndpoint(It.IsAny <string>())).Returns(() => mockAwsServiceEndpoint); var mockAmazonServiceClient = mockSession.CreateClient <MockAmazonServiceClient>(); Assert.NotNull(mockAmazonServiceClient); IClientConfig clientConfig = mockAmazonServiceClient.Config; Assert.Equal(mockAwsServiceEndpoint.ServiceUrl, clientConfig.ServiceURL); Assert.True(clientConfig.UseHttp); Assert.Equal(mockAwsServiceEndpoint.Host, clientConfig.ProxyHost); Assert.Equal(mockAwsServiceEndpoint.Port, clientConfig.ProxyPort); }
public void CreateClient_Should_Create_SessionAWSCredentials_With_AwsAccessKeyId_And_AwsAccessKey_And_AwsSessionToken() { MockSession mockSession = MockSession.Create(); IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); const string awsAccessKeyId = "AwsAccessKeyId"; const string awsAccessKey = "AwsAccessKey"; const string awsSessionToken = "AwsSessionToken"; mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKeyId).Returns(awsAccessKeyId); mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKey).Returns(awsAccessKey); mockSession.SessionOptionsMock.SetupGet(options => options.AwsSessionToken).Returns(awsSessionToken); mockSession.SessionReflectionMock.Setup(reflection => reflection.ExtractServiceMetadata <MockAmazonServiceClient>()).Returns(() => mockServiceMetadata); mockSession.SessionReflectionMock.Setup(reflection => reflection.CreateClientConfig <MockAmazonServiceClient>()).Returns(() => mockClientConfig); mockSession.SessionReflectionMock.Setup(reflection => reflection.SetForcePathStyle(mockClientConfig, true)).Returns(() => true); mockSession.ConfigMock.Setup(config => config.GetAwsServiceEndpoint(It.IsAny <string>())).Returns(() => mockAwsServiceEndpoint); var mockAmazonServiceClient = mockSession.CreateClient <MockAmazonServiceClient>(); Assert.NotNull(mockAmazonServiceClient); AWSCredentials awsCredentials = mockAmazonServiceClient.AwsCredentials; Assert.NotNull(awsCredentials); Assert.IsType <SessionAWSCredentials>(awsCredentials); var sessionAwsCredentials = (SessionAWSCredentials)awsCredentials; ImmutableCredentials immutableCredentials = sessionAwsCredentials.GetCredentials(); Assert.Equal(awsAccessKeyId, immutableCredentials.AccessKey); Assert.Equal(awsAccessKey, immutableCredentials.SecretKey); Assert.Equal(awsSessionToken, immutableCredentials.Token); }
public void CreateClient_Should_Create_AmazonServiceClient_By_Given_Generic_Type() { MockSession mockSession = MockSession.Create(); IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockClientConfig = new MockClientConfig(); mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKeyId).Returns("AwsAccessKeyId"); mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKey).Returns("AwsAccessKey"); mockSession.SessionOptionsMock.SetupGet(options => options.AwsSessionToken).Returns("AwsSessionToken"); mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKeyId).Returns("AwsAccessKeyId"); mockSession.SessionOptionsMock.SetupGet(options => options.AwsAccessKey).Returns("AwsAccessKey"); mockSession.SessionOptionsMock.SetupGet(options => options.AwsSessionToken).Returns("AwsSessionToken"); mockSession.SessionReflectionMock.Setup(reflection => reflection.ExtractServiceMetadata <MockAmazonServiceClient>()).Returns(() => mockServiceMetadata); mockSession.SessionReflectionMock.Setup(reflection => reflection.CreateClientConfig <MockAmazonServiceClient>()).Returns(() => mockClientConfig); mockSession.SessionReflectionMock.Setup(reflection => reflection.SetForcePathStyle(mockClientConfig, true)).Returns(() => true); mockSession.ConfigMock.Setup(config => config.GetAwsServiceEndpoint(It.IsAny <string>())).Returns(() => mockAwsServiceEndpoint); var mockAmazonServiceClient = mockSession.CreateClient <MockAmazonServiceClient>(); Assert.NotNull(mockAmazonServiceClient); mockSession.ConfigMock.Verify(config => config.GetAwsServiceEndpoint(It.Is <string>(serviceId => serviceId == mockServiceMetadata.ServiceId)), Times.Once); mockSession.SessionReflectionMock.Verify(reflection => reflection.ExtractServiceMetadata <MockAmazonServiceClient>(), Times.Once); mockSession.SessionReflectionMock.Verify(reflection => reflection.CreateClientConfig <MockAmazonServiceClient>(), Times.Once); mockSession.SessionReflectionMock.Verify(reflection => reflection.SetForcePathStyle(It.Is <ClientConfig>(config => config == mockClientConfig), true), Times.Once); }
public void CreateClient_Should_Throw_InvalidOperationException_If_Given_ServiceId_Is_Not_Supported() { MockSession mockSession = MockSession.Create(); IServiceMetadata mockServiceMetadata = new MockServiceMetadata(); mockSession.SessionReflectionMock.Setup(reflection => reflection.ExtractServiceMetadata <MockAmazonServiceClient>()).Returns(() => mockServiceMetadata); mockSession.ConfigMock.Setup(config => config.GetAwsServiceEndpoint(It.IsAny <string>())).Returns(() => null); Assert.Throws <InvalidOperationException>(() => mockSession.CreateClient <MockAmazonServiceClient>()); mockSession.ConfigMock.Verify(config => config.GetAwsServiceEndpoint(It.Is <string>(serviceId => serviceId == mockServiceMetadata.ServiceId)), Times.Once); }
public void GetRequiredService_Should_Return_AmazonService_That_Configured_For_LocalStack_If_UseLocalStack_Is_True(bool useAlternateNameAddServiceMethod) { var configurationValue = new Dictionary <string, string> { { "LocalStack:UseLocalStack", "true" } }; IConfiguration configuration = new ConfigurationBuilder().AddInMemoryCollection(configurationValue).Build(); var mockServiceMetadata = new MockServiceMetadata(); var mockAwsServiceEndpoint = new MockAwsServiceEndpoint(); var mockConfig = new Mock <IConfig>(MockBehavior.Strict); IConfig mockConfigObject = mockConfig.Object; mockConfig.Setup(config => config.GetAwsServiceEndpoint(It.Is <string>(s => s == mockServiceMetadata.ServiceId))).Returns(() => mockAwsServiceEndpoint); IServiceCollection serviceCollection = new ServiceCollection(); serviceCollection = serviceCollection .AddLocalStack(configuration) .Replace(ServiceDescriptor.Singleton(_ => mockConfigObject)); if (!useAlternateNameAddServiceMethod) { serviceCollection.AddAwsService <IMockAmazonServiceWithServiceMetadata>(); } else { serviceCollection.AddAWSServiceLocalStack <IMockAmazonServiceWithServiceMetadata>(); } ServiceProvider provider = serviceCollection.BuildServiceProvider(); var mockAmazonService = provider.GetRequiredService <IMockAmazonServiceWithServiceMetadata>(); IClientConfig clientConfig = mockAmazonService.Config; Assert.Equal(mockAwsServiceEndpoint.ServiceUrl, clientConfig.ServiceURL); Assert.True(clientConfig.UseHttp); Assert.Equal(mockAwsServiceEndpoint.Host, clientConfig.ProxyHost); Assert.Equal(mockAwsServiceEndpoint.Port, clientConfig.ProxyPort); }