From 55bdec00e5465d8e613efb7cd722d7251734e5ef Mon Sep 17 00:00:00 2001 From: Marijn van der Zee Date: Tue, 24 Apr 2012 13:29:56 +0200 Subject: [PATCH] SPRNET-1433 - `IsAopProxy` and `IsAopProxyType` now check for inheritance based proxies too --- src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs | 4 ++-- .../Aop/Framework/DynamicProxy/IsAopProxyTests.cs | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs b/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs index 7efc7b54..6a489af0 100644 --- a/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs +++ b/src/Spring/Spring.Aop/Aop/Framework/AopUtils.cs @@ -60,7 +60,7 @@ namespace Spring.Aop.Framework /// if the supplied is an AOP proxy type. public static bool IsAopProxyType(Type objectType) { - return IsCompositionAopProxyType(objectType) || IsDecoratorAopProxyType(objectType); + return IsCompositionAopProxyType(objectType) || IsDecoratorAopProxyType(objectType) || IsInheritanceAopProxyType(objectType); } /// @@ -77,7 +77,7 @@ namespace Spring.Aop.Framework /// public static bool IsAopProxy(object instance) { - return IsCompositionAopProxy(instance) || IsDecoratorAopProxy(instance); + return IsCompositionAopProxy(instance) || IsDecoratorAopProxy(instance) || IsInheritanceAopProxy(instance); } /// diff --git a/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs b/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs index 653355c3..29e8afa1 100644 --- a/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs +++ b/test/Spring/Spring.Aop.Tests/Aop/Framework/DynamicProxy/IsAopProxyTests.cs @@ -22,6 +22,8 @@ namespace Spring.Aop.Framework.DynamicProxy public void TargetIsNotAProxy() { Assert.False(AopUtils.IsAopProxy(_target)); + Assert.False(AopUtils.IsInheritanceAopProxy(_target)); + Assert.False(AopUtils.IsInheritanceAopProxyType(_target.GetType())); } [Test] @@ -69,8 +71,12 @@ namespace Spring.Aop.Framework.DynamicProxy { var proxy = (TestObject)ctx["michael"]; Assert.AreEqual("Michael", proxy.Name); + Assert.True(AopUtils.IsInheritanceAopProxyType(proxy.GetType())); + Assert.True(AopUtils.IsAopProxyType(proxy.GetType())); + Assert.True(AopUtils.IsInheritanceAopProxy(proxy)); + Assert.True(AopUtils.IsAopProxy(proxy)); } } }