From 199107e211f2f1663d566da64d406dacf50988ad Mon Sep 17 00:00:00 2001 From: Aleksbgbg Date: Thu, 20 Jun 2019 12:27:28 +0100 Subject: [PATCH] [Strategies] Remove IDependencyContainer parameter from location method as frequently unused and can be provided in constructor. --- .../Container/Strategies/HandlerStrategyTests.cs | 11 +++++++++-- .../Container/Strategies/InstanceStrategyTests.cs | 2 +- Wingman/Container/Strategies/HandlerStrategy.cs | 9 ++++++--- .../Container/Strategies/IServiceLocationStrategy.cs | 2 +- Wingman/Container/Strategies/InstanceStrategy.cs | 2 +- 5 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Wingman.Tests/Container/Strategies/HandlerStrategyTests.cs b/Wingman.Tests/Container/Strategies/HandlerStrategyTests.cs index 0ec10d5..c09f6b9 100644 --- a/Wingman.Tests/Container/Strategies/HandlerStrategyTests.cs +++ b/Wingman.Tests/Container/Strategies/HandlerStrategyTests.cs @@ -1,5 +1,7 @@ namespace Wingman.Tests.Container.Strategies { + using System; + using Moq; using Wingman.Container; @@ -21,7 +23,7 @@ public void TestReturnsHandlerResult() { object expectedObject = new object(); - object actualObject = new HandlerStrategy(_ => expectedObject).LocateService(null); + object actualObject = HandlerStrategy(_ => expectedObject).LocateService(); Assert.Same(expectedObject, actualObject); } @@ -31,9 +33,14 @@ public void TestPassesDependencyRetrieverArgument() { IDependencyRetriever actualRetriever = null; - new HandlerStrategy(passedInRetriever => actualRetriever = passedInRetriever).LocateService(_dependencyRetrieverMock.Object); + HandlerStrategy(passedInRetriever => actualRetriever = passedInRetriever).LocateService(); Assert.Same(_dependencyRetrieverMock.Object, actualRetriever); } + + private HandlerStrategy HandlerStrategy(Func handler) + { + return new HandlerStrategy(_dependencyRetrieverMock.Object, handler); + } } } \ No newline at end of file diff --git a/Wingman.Tests/Container/Strategies/InstanceStrategyTests.cs b/Wingman.Tests/Container/Strategies/InstanceStrategyTests.cs index c8152a3..06c819c 100644 --- a/Wingman.Tests/Container/Strategies/InstanceStrategyTests.cs +++ b/Wingman.Tests/Container/Strategies/InstanceStrategyTests.cs @@ -12,7 +12,7 @@ public void TestReturnsImplementation() object expectedService = new object(); InstanceStrategy strategy = new InstanceStrategy(expectedService); - object actualService = strategy.LocateService(null); + object actualService = strategy.LocateService(); Assert.Equal(expectedService, actualService); } diff --git a/Wingman/Container/Strategies/HandlerStrategy.cs b/Wingman/Container/Strategies/HandlerStrategy.cs index f75abfe..9e89eba 100644 --- a/Wingman/Container/Strategies/HandlerStrategy.cs +++ b/Wingman/Container/Strategies/HandlerStrategy.cs @@ -4,16 +4,19 @@ public class HandlerStrategy : IServiceLocationStrategy { + private readonly IDependencyRetriever _dependencyRetriever; + private readonly Func _handler; - public HandlerStrategy(Func handler) + public HandlerStrategy(IDependencyRetriever dependencyRetriever, Func handler) { + _dependencyRetriever = dependencyRetriever; _handler = handler; } - public object LocateService(IDependencyRetriever dependencyRetriever) + public object LocateService() { - return _handler(dependencyRetriever); + return _handler(_dependencyRetriever); } } } \ No newline at end of file diff --git a/Wingman/Container/Strategies/IServiceLocationStrategy.cs b/Wingman/Container/Strategies/IServiceLocationStrategy.cs index fbe9ec2..c9a1aae 100644 --- a/Wingman/Container/Strategies/IServiceLocationStrategy.cs +++ b/Wingman/Container/Strategies/IServiceLocationStrategy.cs @@ -2,6 +2,6 @@ { internal interface IServiceLocationStrategy { - object LocateService(IDependencyRetriever dependencyRetriever); + object LocateService(); } } \ No newline at end of file diff --git a/Wingman/Container/Strategies/InstanceStrategy.cs b/Wingman/Container/Strategies/InstanceStrategy.cs index ad0270a..f6bccff 100644 --- a/Wingman/Container/Strategies/InstanceStrategy.cs +++ b/Wingman/Container/Strategies/InstanceStrategy.cs @@ -9,7 +9,7 @@ public InstanceStrategy(object implementation) _implementation = implementation; } - public object LocateService(IDependencyRetriever dependencyRetriever) + public object LocateService() { return _implementation; }