Skip to content

Commit

Permalink
feat: add NumberVerificationClient in services collection extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
Tr00d committed Jun 19, 2024
1 parent 9c95a13 commit 01311c4
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 @@ -13,6 +13,7 @@
using Vonage.NumberInsights;
using Vonage.NumberInsightV2;
using Vonage.Numbers;
using Vonage.NumberVerification;
using Vonage.Pricing;
using Vonage.ProactiveConnect;
using Vonage.Redaction;
Expand All @@ -39,9 +40,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 @@ -50,7 +51,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 @@ -59,7 +60,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 @@ -69,7 +70,7 @@ public void
var provider = BuildTransientProviderWithConfiguration(this.configuration);
provider.GetRequiredService(type).Should().NotBeNull();
}

[Theory]
[MemberData(nameof(GetRegisteredTypes))]
public void AddVonageClientTransient_ShouldProvideTransientInstance_GivenCredentialsAreProvided(
Expand All @@ -78,7 +79,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 @@ -90,6 +91,7 @@ public static IEnumerable<object[]> GetRegisteredTypes()
yield return new object[] {typeof(INumberInsightClient)};
yield return new object[] {typeof(INumberInsightV2Client)};
yield return new object[] {typeof(INumbersClient)};
yield return new object[] {typeof(INumberVerificationClient)};
yield return new object[] {typeof(IPricingClient)};
yield return new object[] {typeof(IProactiveConnectClient)};
yield return new object[] {typeof(IRedactClient)};
Expand All @@ -106,16 +108,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 @@ -84,6 +84,7 @@ private static void RegisterScopedServices(IServiceCollection services)
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().NumberInsightClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().NumberInsightV2Client);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().NumbersClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().NumberVerificationClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().PricingClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().ProactiveConnectClient);
services.AddScoped(serviceProvider => serviceProvider.GetService<VonageClient>().RedactClient);
Expand All @@ -99,7 +100,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 @@ -110,6 +111,7 @@ private static void RegisterTransientServices(IServiceCollection services)
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().NumberInsightClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().NumberInsightV2Client);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().NumbersClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().NumberVerificationClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().PricingClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().ProactiveConnectClient);
services.AddTransient(serviceProvider => serviceProvider.GetService<VonageClient>().RedactClient);
Expand Down

0 comments on commit 01311c4

Please sign in to comment.