diff --git a/Vonage.Test/SimSwap/Check/E2ETest.cs b/Vonage.Test/SimSwap/Check/E2ETest.cs index 2538f22f..175f15d6 100644 --- a/Vonage.Test/SimSwap/Check/E2ETest.cs +++ b/Vonage.Test/SimSwap/Check/E2ETest.cs @@ -19,7 +19,7 @@ public async Task CheckAsync() { this.SetupAuthorization(); this.SetupToken(); - this.SetupSimSwap(nameof(SerializationTest.ShouldSerialize)); + this.SetupCheck(nameof(SerializationTest.ShouldSerialize)); await this.Helper.VonageClient.SimSwapClient .CheckAsync(CheckRequest.Build().WithPhoneNumber("346661113334").Create()) .Should() @@ -31,14 +31,14 @@ public async Task CheckAsyncWithPeriod() { this.SetupAuthorization(); this.SetupToken(); - this.SetupSimSwap(nameof(SerializationTest.ShouldSerializeWithPeriod)); + this.SetupCheck(nameof(SerializationTest.ShouldSerializeWithPeriod)); await this.Helper.VonageClient.SimSwapClient .CheckAsync(CheckRequest.Build().WithPhoneNumber("346661113334").WithPeriod(15).Create()) .Should() .BeSuccessAsync(true); } - private void SetupSimSwap(string expectedOutput) => + private void SetupCheck(string expectedOutput) => this.Helper.Server.Given(WireMock.RequestBuilders.Request.Create() .WithPath("/camara/sim-swap/v040/check") .WithHeader("Authorization", "Bearer ABCDEFG") diff --git a/Vonage.Test/SimSwap/GetSwapDate/E2ETest.cs b/Vonage.Test/SimSwap/GetSwapDate/E2ETest.cs index 214c39c8..71b515c7 100644 --- a/Vonage.Test/SimSwap/GetSwapDate/E2ETest.cs +++ b/Vonage.Test/SimSwap/GetSwapDate/E2ETest.cs @@ -20,14 +20,14 @@ public async Task GetSwapDateAsync() { this.SetupAuthorization(); this.SetupToken(); - this.SetupSimSwap(nameof(SerializationTest.ShouldSerialize)); + this.SetupGetSwapDate(nameof(SerializationTest.ShouldSerialize)); await this.Helper.VonageClient.SimSwapClient .GetSwapDateAsync(GetSwapDateRequest.Parse("346661113334")) .Should() .BeSuccessAsync(DateTimeOffset.Parse("2019-08-24T14:15:22Z")); } - private void SetupSimSwap(string expectedOutput) => + private void SetupGetSwapDate(string expectedOutput) => this.Helper.Server.Given(WireMock.RequestBuilders.Request.Create() .WithPath("/camara/sim-swap/v040/retrieve-date") .WithHeader("Authorization", "Bearer ABCDEFG") diff --git a/Vonage/SimSwap/SimSwapClient.cs b/Vonage/SimSwap/SimSwapClient.cs index 51ea8e81..c9d939d9 100644 --- a/Vonage/SimSwap/SimSwapClient.cs +++ b/Vonage/SimSwap/SimSwapClient.cs @@ -27,21 +27,29 @@ public Task> AuthenticateAsync(Result public async Task> CheckAsync(Result request) => - await request.BindAsync(this.AuthenticateCheckRequest) + await request + .Map(BuildAuthenticationRequest) + .BindAsync(this.AuthenticateAsync) .Map(BuildAuthenticationHeader) .Map(this.BuildClientWithAuthenticationHeader) .BindAsync(client => client.SendWithResponseAsync(request)) .Map(response => response.Swapped); /// - public async Task> GetSwapDateAsync(Result request) - { - return await request.BindAsync(this.AuthenticateGetSwapDateRequest) + public async Task> GetSwapDateAsync(Result request) => + await request + .Map(BuildAuthenticationRequest) + .BindAsync(this.AuthenticateAsync) .Map(BuildAuthenticationHeader) .Map(this.BuildClientWithAuthenticationHeader) .BindAsync(client => client.SendWithResponseAsync(request)) .Map(response => response.LatestSimChange); - } + + private static Result BuildAuthenticationRequest(CheckRequest request) => + request.BuildAuthenticationRequest(); + + private static Result BuildAuthenticationRequest(GetSwapDateRequest request) => + request.BuildAuthenticationRequest(); private VonageHttpClient BuildClientWithAuthenticationHeader(AuthenticationHeaderValue header) => this.vonageClient.WithDifferentHeader(header); @@ -49,12 +57,6 @@ private VonageHttpClient BuildClientWithAuthenticationHeader(AuthenticationHeade private static AuthenticationHeaderValue BuildAuthenticationHeader(AuthenticateResponse authentication) => authentication.BuildAuthenticationHeader(); - private Task> AuthenticateCheckRequest(CheckRequest request) => - this.AuthenticateAsync(request.BuildAuthenticationRequest()); - - private Task> AuthenticateGetSwapDateRequest(GetSwapDateRequest request) => - this.AuthenticateAsync(request.BuildAuthenticationRequest()); - private static AuthenticateResponse BuildAuthenticateResponse(GetTokenResponse response) => new AuthenticateResponse(response.AccessToken);