Skip to content

Commit

Permalink
feat: add SimSwap client to ServiceCollection extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
Tr00d committed May 16, 2024
1 parent fe131a2 commit 443f9ac
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 15 deletions.
22 changes: 12 additions & 10 deletions Vonage.Test/Extensions/ServiceCollectionExtensionsTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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(
Expand All @@ -49,7 +50,7 @@ public class ServiceCollectionExtensionsTest
var provider = BuildScopedProviderWithConfiguration(this.configuration);
provider.GetRequiredService(type).Should().Be(provider.GetRequiredService(type));
}

[Theory]
[MemberData(nameof(GetRegisteredTypes))]
public void AddVonageClientScoped_ShouldProvideScopedInstance_GivenCredentialsAreProvided(
Expand All @@ -58,7 +59,7 @@ public class ServiceCollectionExtensionsTest
var provider = BuildScopedProviderWithCredentials(this.credentials);
provider.GetRequiredService(type).Should().Be(provider.GetRequiredService(type));
}

[Theory]
[MemberData(nameof(GetRegisteredTypes))]
public void
Expand All @@ -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(
Expand All @@ -77,7 +78,7 @@ public void
var provider = BuildTransientProviderWithCredentials(this.credentials);
provider.GetRequiredService(type).Should().NotBeNull();
}

public static IEnumerable<object[]> GetRegisteredTypes()
{
yield return new object[] {typeof(VonageClient)};
Expand All @@ -92,6 +93,7 @@ public static IEnumerable<object[]> 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)};
Expand All @@ -104,16 +106,16 @@ public static IEnumerable<object[]> 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();
}
Expand Down
12 changes: 7 additions & 5 deletions Vonage/Extensions/ServiceCollectionExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public static IServiceCollection AddVonageClientScoped(this IServiceCollection s
RegisterScopedServices(services);
return services;
}

/// <summary>
/// Adds a scoped service of <see cref="VonageClient" />, and all api-specific clients, to the specified
/// IServiceCollection.
Expand All @@ -41,7 +41,7 @@ public static IServiceCollection AddVonageClientScoped(this IServiceCollection s
RegisterScopedServices(services);
return services;
}

/// <summary>
/// Adds a transient service of <see cref="VonageClient" />, and all api-specific clients, to the specified
/// IServiceCollection.
Expand All @@ -56,7 +56,7 @@ public static IServiceCollection AddVonageClientTransient(this IServiceCollectio
RegisterTransientServices(services);
return services;
}

/// <summary>
/// Adds a transient service of <see cref="VonageClient" />, and all api-specific clients, to the specified
/// IServiceCollection.
Expand All @@ -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<VonageClient>().AccountClient);
Expand All @@ -87,6 +87,7 @@ private static void RegisterScopedServices(IServiceCollection services)
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().PricingClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().ProactiveConnectClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().RedactClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().SimSwapClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().ShortCodesClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().SubAccountsClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().SmsClient);
Expand All @@ -98,7 +99,7 @@ private static void RegisterScopedServices(IServiceCollection services)
services.AddScoped<ITokenGenerator>(_ => new Jwt());
services.AddScoped<IVideoTokenGenerator>(_ => new VideoTokenGenerator());
}

private static void RegisterTransientServices(IServiceCollection services)
{
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().AccountClient);
Expand All @@ -112,6 +113,7 @@ private static void RegisterTransientServices(IServiceCollection services)
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().PricingClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().ProactiveConnectClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().RedactClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().SimSwapClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().ShortCodesClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().SubAccountsClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().SmsClient);
Expand Down

0 comments on commit 443f9ac

Please sign in to comment.