From 443f9ace9c0135c86af876f966f7323f8c0032d1 Mon Sep 17 00:00:00 2001 From: tr00d Date: Thu, 16 May 2024 10:24:48 +0200 Subject: [PATCH] feat: add SimSwap client to ServiceCollection extensions --- .../ServiceCollectionExtensionsTest.cs | 22 ++++++++++--------- .../Extensions/ServiceCollectionExtensions.cs | 12 +++++----- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Vonage.Test/Extensions/ServiceCollectionExtensionsTest.cs b/Vonage.Test/Extensions/ServiceCollectionExtensionsTest.cs index c089a270c..7527f9025 100644 --- a/Vonage.Test/Extensions/ServiceCollectionExtensionsTest.cs +++ b/Vonage.Test/Extensions/ServiceCollectionExtensionsTest.cs @@ -18,6 +18,7 @@ using Vonage.Redaction; using Vonage.Request; using Vonage.ShortCodes; +using Vonage.SimSwap; using Vonage.SubAccounts; using Vonage.Users; using Vonage.Verify; @@ -38,9 +39,9 @@ public class ServiceCollectionExtensionsTest {"vonage:Vonage_key", "RandomValue"}, }) .Build(); - + private readonly Credentials credentials = Credentials.FromApiKeyAndSecret("key", "secret"); - + [Theory] [MemberData(nameof(GetRegisteredTypes))] public void AddVonageClientScoped_ShouldProvideScopedInstance_GivenConfigurationIsProvided( @@ -49,7 +50,7 @@ public void AddVonageClientScoped_ShouldProvideScopedInstance_GivenConfiguration var provider = BuildScopedProviderWithConfiguration(this.configuration); provider.GetRequiredService(type).Should().Be(provider.GetRequiredService(type)); } - + [Theory] [MemberData(nameof(GetRegisteredTypes))] public void AddVonageClientScoped_ShouldProvideScopedInstance_GivenCredentialsAreProvided( @@ -58,7 +59,7 @@ public void AddVonageClientScoped_ShouldProvideScopedInstance_GivenCredentialsAr var provider = BuildScopedProviderWithCredentials(this.credentials); provider.GetRequiredService(type).Should().Be(provider.GetRequiredService(type)); } - + [Theory] [MemberData(nameof(GetRegisteredTypes))] public void @@ -68,7 +69,7 @@ public void var provider = BuildTransientProviderWithConfiguration(this.configuration); provider.GetRequiredService(type).Should().NotBeNull(); } - + [Theory] [MemberData(nameof(GetRegisteredTypes))] public void AddVonageClientTransient_ShouldProvideTransientInstance_GivenCredentialsAreProvided( @@ -77,7 +78,7 @@ public void AddVonageClientTransient_ShouldProvideTransientInstance_GivenCredent var provider = BuildTransientProviderWithCredentials(this.credentials); provider.GetRequiredService(type).Should().NotBeNull(); } - + public static IEnumerable GetRegisteredTypes() { yield return new object[] {typeof(VonageClient)}; @@ -92,6 +93,7 @@ public static IEnumerable GetRegisteredTypes() yield return new object[] {typeof(IPricingClient)}; yield return new object[] {typeof(IProactiveConnectClient)}; yield return new object[] {typeof(IRedactClient)}; + yield return new object[] {typeof(ISimSwapClient)}; yield return new object[] {typeof(IShortCodesClient)}; yield return new object[] {typeof(ISubAccountsClient)}; yield return new object[] {typeof(ISmsClient)}; @@ -104,16 +106,16 @@ public static IEnumerable GetRegisteredTypes() yield return new object[] {typeof(IVideoTokenGenerator)}; yield return new object[] {typeof(Credentials)}; } - + private static ServiceProvider BuildScopedProviderWithConfiguration(IConfiguration configuration) => new ServiceCollection().AddVonageClientScoped(configuration).BuildServiceProvider(); - + private static ServiceProvider BuildScopedProviderWithCredentials(Credentials credentials) => new ServiceCollection().AddVonageClientScoped(credentials).BuildServiceProvider(); - + private static ServiceProvider BuildTransientProviderWithConfiguration(IConfiguration configuration) => new ServiceCollection().AddVonageClientTransient(configuration).BuildServiceProvider(); - + private static ServiceProvider BuildTransientProviderWithCredentials(Credentials credentials) => new ServiceCollection().AddVonageClientTransient(credentials).BuildServiceProvider(); } diff --git a/Vonage/Extensions/ServiceCollectionExtensions.cs b/Vonage/Extensions/ServiceCollectionExtensions.cs index 4557c982f..76dd4d1ee 100644 --- a/Vonage/Extensions/ServiceCollectionExtensions.cs +++ b/Vonage/Extensions/ServiceCollectionExtensions.cs @@ -24,7 +24,7 @@ public static IServiceCollection AddVonageClientScoped(this IServiceCollection s RegisterScopedServices(services); return services; } - + /// /// Adds a scoped service of , and all api-specific clients, to the specified /// IServiceCollection. @@ -41,7 +41,7 @@ public static IServiceCollection AddVonageClientScoped(this IServiceCollection s RegisterScopedServices(services); return services; } - + /// /// Adds a transient service of , and all api-specific clients, to the specified /// IServiceCollection. @@ -56,7 +56,7 @@ public static IServiceCollection AddVonageClientTransient(this IServiceCollectio RegisterTransientServices(services); return services; } - + /// /// Adds a transient service of , and all api-specific clients, to the specified /// IServiceCollection. @@ -73,7 +73,7 @@ public static IServiceCollection AddVonageClientTransient(this IServiceCollectio RegisterTransientServices(services); return services; } - + private static void RegisterScopedServices(IServiceCollection services) { services.AddScoped(serviceProvider => serviceProvider.GetService().AccountClient); @@ -87,6 +87,7 @@ private static void RegisterScopedServices(IServiceCollection services) services.AddScoped(serviceProvider => serviceProvider.GetService().PricingClient); services.AddScoped(serviceProvider => serviceProvider.GetService().ProactiveConnectClient); services.AddScoped(serviceProvider => serviceProvider.GetService().RedactClient); + services.AddScoped(serviceProvider => serviceProvider.GetService().SimSwapClient); services.AddScoped(serviceProvider => serviceProvider.GetService().ShortCodesClient); services.AddScoped(serviceProvider => serviceProvider.GetService().SubAccountsClient); services.AddScoped(serviceProvider => serviceProvider.GetService().SmsClient); @@ -98,7 +99,7 @@ private static void RegisterScopedServices(IServiceCollection services) services.AddScoped(_ => new Jwt()); services.AddScoped(_ => new VideoTokenGenerator()); } - + private static void RegisterTransientServices(IServiceCollection services) { services.AddTransient(serviceProvider => serviceProvider.GetService().AccountClient); @@ -112,6 +113,7 @@ private static void RegisterTransientServices(IServiceCollection services) services.AddTransient(serviceProvider => serviceProvider.GetService().PricingClient); services.AddTransient(serviceProvider => serviceProvider.GetService().ProactiveConnectClient); services.AddTransient(serviceProvider => serviceProvider.GetService().RedactClient); + services.AddTransient(serviceProvider => serviceProvider.GetService().SimSwapClient); services.AddTransient(serviceProvider => serviceProvider.GetService().ShortCodesClient); services.AddTransient(serviceProvider => serviceProvider.GetService().SubAccountsClient); services.AddTransient(serviceProvider => serviceProvider.GetService().SmsClient);