From f5af3c0ff2cfcfc417aeefd4fda4f1cb8a47f405 Mon Sep 17 00:00:00 2001 From: Magnus Nilsson Date: Thu, 28 Mar 2019 09:42:08 +0100 Subject: [PATCH] Streamlined action signature func calls --- src/Castle.Sdk/Actions/Authenticate.cs | 5 ++-- src/Castle.Sdk/Actions/Track.cs | 6 ++--- src/Castle.Sdk/CastleClient.cs | 6 ++--- src/Tests/Actions/When_authenticating.cs | 30 ++++++++++-------------- src/Tests/Actions/When_tracking.cs | 6 ++--- 5 files changed, 20 insertions(+), 33 deletions(-) diff --git a/src/Castle.Sdk/Actions/Authenticate.cs b/src/Castle.Sdk/Actions/Authenticate.cs index b531159..9e699d2 100644 --- a/src/Castle.Sdk/Actions/Authenticate.cs +++ b/src/Castle.Sdk/Actions/Authenticate.cs @@ -12,8 +12,7 @@ namespace Castle.Actions internal static class Authenticate { public static async Task Execute( - Func> send, - JObject request, + Func> send, CastleConfiguration configuration, IInternalLogger logger) { @@ -22,7 +21,7 @@ internal static class Authenticate try { - return await send(request); + return await send(); } catch (Exception e) { diff --git a/src/Castle.Sdk/Actions/Track.cs b/src/Castle.Sdk/Actions/Track.cs index a43f523..8a416b0 100644 --- a/src/Castle.Sdk/Actions/Track.cs +++ b/src/Castle.Sdk/Actions/Track.cs @@ -2,18 +2,16 @@ using System.Threading.Tasks; using Castle.Config; using Castle.Messages.Responses; -using Newtonsoft.Json.Linq; namespace Castle.Actions { internal static class Track { public static async Task Execute( - Func> send, - JObject request, + Func> send, CastleConfiguration configuration) { - return await send(request); + return await send(); } } } diff --git a/src/Castle.Sdk/CastleClient.cs b/src/Castle.Sdk/CastleClient.cs index 87c8068..6b20919 100644 --- a/src/Castle.Sdk/CastleClient.cs +++ b/src/Castle.Sdk/CastleClient.cs @@ -36,8 +36,7 @@ public JObject BuildAuthenticateRequest(ActionRequest request) public async Task SendAuthenticateRequest(JObject request) { return await TryRequest(() => Actions.Authenticate.Execute( - req => _messageSender.Post("/v1/authenticate", req), - request, + () => _messageSender.Post("/v1/authenticate", request), _configuration, _logger)); } @@ -58,8 +57,7 @@ public JObject BuildTrackRequest(ActionRequest request) public async Task SendTrackRequest(JObject request) { await TryRequest(() => Actions.Track.Execute( - req => _messageSender.Post("/v1/track", req), - request, + () => _messageSender.Post("/v1/track", request), _configuration)); } diff --git a/src/Tests/Actions/When_authenticating.cs b/src/Tests/Actions/When_authenticating.cs index e519bf1..45f7801 100644 --- a/src/Tests/Actions/When_authenticating.cs +++ b/src/Tests/Actions/When_authenticating.cs @@ -18,30 +18,28 @@ public class When_authenticating { [Theory, AutoFakeData] public async Task Should_return_response_if_successful( - JObject request, CastleConfiguration configuration, Verdict response) { - Task Send(JObject req) => Task.FromResult(response); + Task Send() => Task.FromResult(response); var logger = Substitute.For(); - var result = await Authenticate.Execute(Send, request, configuration, logger); + var result = await Authenticate.Execute(Send, configuration, logger); result.Should().Be(response); } [Theory, AutoFakeData] public async Task Should_return_failover_response_if_timeout( - JObject request, string requestUri, CastleConfiguration configuration) { configuration.FailOverStrategy = ActionType.Allow; var logger = Substitute.For(); - Task Send(JObject req) => throw new CastleTimeoutException(requestUri, configuration.Timeout); + Task Send() => throw new CastleTimeoutException(requestUri, configuration.Timeout); - var result = await Authenticate.Execute(Send, request, configuration, logger); + var result = await Authenticate.Execute(Send, configuration, logger); result.Failover.Should().Be(true); result.FailoverReason.Should().Be("timeout"); @@ -49,16 +47,15 @@ public class When_authenticating [Theory, AutoFakeData] public async Task Should_return_failover_response_if_any_exception( - JObject request, Exception exception, CastleConfiguration configuration) { configuration.FailOverStrategy = ActionType.Allow; var logger = Substitute.For(); - Task Send(JObject req) => throw exception; + Task Send() => throw exception; - var result = await Authenticate.Execute(Send, request, configuration, logger); + var result = await Authenticate.Execute(Send, configuration, logger); result.Failover.Should().Be(true); result.FailoverReason.Should().Be("server error"); @@ -66,39 +63,36 @@ public class When_authenticating [Theory, AutoFakeData] public async Task Should_log_failover_exception_as_warning( - JObject request, Exception exception, CastleConfiguration configuration) { configuration.FailOverStrategy = ActionType.Allow; var logger = Substitute.For(); - Task Send(JObject req) => throw exception; + Task Send() => throw exception; - await Authenticate.Execute(Send, request, configuration, logger); + await Authenticate.Execute(Send, configuration, logger); logger.Received().Warn(Arg.Is>(x => x() == "Failover, " + exception)); } [Theory, AutoFakeData] public async Task Should_throw_exception_if_failing_over_with_no_strategy( - JObject request, Exception exception, CastleConfiguration configuration) { configuration.FailOverStrategy = ActionType.None; var logger = Substitute.For(); - Task Send(JObject req) => throw exception; + Task Send() => throw exception; - Func act = async () => await Authenticate.Execute(Send, request, configuration, logger); + Func act = async () => await Authenticate.Execute(Send, configuration, logger); await act.Should().ThrowAsync(); } [Theory, AutoFakeData] public async Task Should_return_failover_response_if_do_not_track_is_set( - JObject request, CastleConfiguration configuration, Verdict response) { @@ -106,9 +100,9 @@ public class When_authenticating configuration.FailOverStrategy = ActionType.Allow; var logger = Substitute.For(); - Task Send(JObject req) => Task.FromResult(response); + Task Send() => Task.FromResult(response); - var result = await Authenticate.Execute(Send, request, configuration, logger); + var result = await Authenticate.Execute(Send, configuration, logger); result.Failover.Should().Be(true); result.FailoverReason.Should().Be("do not track"); diff --git a/src/Tests/Actions/When_tracking.cs b/src/Tests/Actions/When_tracking.cs index 062436b..307f1f0 100644 --- a/src/Tests/Actions/When_tracking.cs +++ b/src/Tests/Actions/When_tracking.cs @@ -3,7 +3,6 @@ using Castle.Config; using Castle.Messages.Responses; using FluentAssertions; -using Newtonsoft.Json.Linq; using Tests.SetUp; using Xunit; @@ -13,13 +12,12 @@ public class When_tracking { [Theory, AutoFakeData] public async Task Should_return_response_if_successful( - JObject request, CastleConfiguration configuration) { var response = new VoidResponse(); - Task Send(JObject req) => Task.FromResult(response); + Task Send() => Task.FromResult(response); - var result = await Track.Execute(Send, request, configuration); + var result = await Track.Execute(Send, configuration); result.Should().Be(response); }