From f1e4f5e2f997b34ed2b1730d2f398c713550fa05 Mon Sep 17 00:00:00 2001 From: Simon Gockner Date: Fri, 22 Nov 2019 11:27:11 +0100 Subject: [PATCH] #29: mark IUnitTestResolveCallback as deprecated --- LightweightIocContainer/Interfaces/IIocContainer.cs | 1 + .../Interfaces/Registrations/IUnitTestCallbackRegistration.cs | 4 ++++ LightweightIocContainer/IocContainer.cs | 4 ++++ LightweightIocContainer/Registrations/RegistrationFactory.cs | 1 + .../Registrations/UnitTestCallbackRegistration.cs | 1 + Test.LightweightIocContainer/IocContainerTest.cs | 3 +++ .../UnitTestCallbackRegistrationTest.cs | 2 ++ 7 files changed, 16 insertions(+) diff --git a/LightweightIocContainer/Interfaces/IIocContainer.cs b/LightweightIocContainer/Interfaces/IIocContainer.cs index 79e4746..0b5d2bd 100644 --- a/LightweightIocContainer/Interfaces/IIocContainer.cs +++ b/LightweightIocContainer/Interfaces/IIocContainer.cs @@ -59,6 +59,7 @@ namespace LightweightIocContainer.Interfaces /// The Interface to register /// The for the callback /// The created + [Obsolete("RegisterUnitTestCallback is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] IUnitTestCallbackRegistration RegisterUnitTestCallback(ResolveCallback unitTestCallback); /// diff --git a/LightweightIocContainer/Interfaces/Registrations/IUnitTestCallbackRegistration.cs b/LightweightIocContainer/Interfaces/Registrations/IUnitTestCallbackRegistration.cs index 2dd0123..d10f74e 100644 --- a/LightweightIocContainer/Interfaces/Registrations/IUnitTestCallbackRegistration.cs +++ b/LightweightIocContainer/Interfaces/Registrations/IUnitTestCallbackRegistration.cs @@ -2,17 +2,21 @@ // Created: 2019-10-15 // Copyright(c) 2019 SimonG. All Rights Reserved. +using System; + namespace LightweightIocContainer.Interfaces.Registrations { /// /// A special that allows to set a as a callback that is called on /// /// + [Obsolete("IUnitTestCallbackRegistration is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] public interface IUnitTestCallbackRegistration : IRegistration { /// /// An that is set as a callback that is called on /// + [Obsolete("UnitTestResolveCallback is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] ResolveCallback UnitTestResolveCallback { get; } } } \ No newline at end of file diff --git a/LightweightIocContainer/IocContainer.cs b/LightweightIocContainer/IocContainer.cs index 14f01af..8096bf9 100644 --- a/LightweightIocContainer/IocContainer.cs +++ b/LightweightIocContainer/IocContainer.cs @@ -115,6 +115,7 @@ namespace LightweightIocContainer /// The Interface to register /// The for the callback /// The created + [Obsolete("RegisterUnitTestCallback is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] public IUnitTestCallbackRegistration RegisterUnitTestCallback(ResolveCallback unitTestCallback) { IUnitTestCallbackRegistration registration = _registrationFactory.RegisterUnitTestCallback(unitTestCallback); @@ -209,10 +210,13 @@ namespace LightweightIocContainer T resolvedInstance; + //TODO: remove this #pragma when IUnitTestCallbackRegistration is removed +#pragma warning disable 618 if (registration is IUnitTestCallbackRegistration unitTestCallbackRegistration) { resolvedInstance = unitTestCallbackRegistration.UnitTestResolveCallback.Invoke(arguments); } +#pragma warning restore 618 else if (registration is IRegistrationBase defaultRegistration) { if (defaultRegistration.Lifestyle == Lifestyle.Singleton) diff --git a/LightweightIocContainer/Registrations/RegistrationFactory.cs b/LightweightIocContainer/Registrations/RegistrationFactory.cs index 41ec968..d780413 100644 --- a/LightweightIocContainer/Registrations/RegistrationFactory.cs +++ b/LightweightIocContainer/Registrations/RegistrationFactory.cs @@ -66,6 +66,7 @@ namespace LightweightIocContainer.Registrations return new TypedFactoryRegistration(typeof(TFactory), _iocContainer); } + [Obsolete("RegisterUnitTestCallback is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] public IUnitTestCallbackRegistration RegisterUnitTestCallback(ResolveCallback unitTestResolveCallback) { return new UnitTestCallbackRegistration(typeof(TInterface), unitTestResolveCallback); diff --git a/LightweightIocContainer/Registrations/UnitTestCallbackRegistration.cs b/LightweightIocContainer/Registrations/UnitTestCallbackRegistration.cs index 529d1e5..c489510 100644 --- a/LightweightIocContainer/Registrations/UnitTestCallbackRegistration.cs +++ b/LightweightIocContainer/Registrations/UnitTestCallbackRegistration.cs @@ -12,6 +12,7 @@ namespace LightweightIocContainer.Registrations /// A special that allows to set a as a callback that is called on /// /// + [Obsolete("UnitTestCallbackRegistration is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] public class UnitTestCallbackRegistration : IUnitTestCallbackRegistration { /// diff --git a/Test.LightweightIocContainer/IocContainerTest.cs b/Test.LightweightIocContainer/IocContainerTest.cs index ccffa6c..39b1add 100644 --- a/Test.LightweightIocContainer/IocContainerTest.cs +++ b/Test.LightweightIocContainer/IocContainerTest.cs @@ -1,3 +1,4 @@ +using System; using JetBrains.Annotations; using LightweightIocContainer; using LightweightIocContainer.Exceptions; @@ -179,6 +180,7 @@ namespace Test.LightweightIocContainer } [Test] + [Obsolete("RegisterUnitTestCallback is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] public void TestRegisterUnitTestCallback() { Assert.DoesNotThrow(() => _iocContainer.RegisterUnitTestCallback(delegate {return new Test(); })); @@ -436,6 +438,7 @@ namespace Test.LightweightIocContainer } [Test] + [Obsolete("RegisterUnitTestCallback is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] public void TestResolveUnitTestCallbackRegistration() { ITest callbackTest = new Test(); diff --git a/Test.LightweightIocContainer/UnitTestCallbackRegistrationTest.cs b/Test.LightweightIocContainer/UnitTestCallbackRegistrationTest.cs index 0e4a099..f9392db 100644 --- a/Test.LightweightIocContainer/UnitTestCallbackRegistrationTest.cs +++ b/Test.LightweightIocContainer/UnitTestCallbackRegistrationTest.cs @@ -2,6 +2,7 @@ // Created: 2019-10-15 // Copyright(c) 2019 SimonG. All Rights Reserved. +using System; using LightweightIocContainer; using LightweightIocContainer.Interfaces; using LightweightIocContainer.Interfaces.Registrations; @@ -12,6 +13,7 @@ using NUnit.Framework; namespace Test.LightweightIocContainer { [TestFixture] + [Obsolete("UnitTestCallbackRegistration is deprecated, use `WithFactoryMethod()` from ISingleTypeRegistration instead.")] public class UnitTestCallbackRegistrationTest { private interface ITest