SPRNET-1433 - Add IsInheritanceAopProxy and IsInheritanceAopProxyType methods
Includes tests.
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using Spring.Aop.Advice;
|
||||
using Spring.Context.Support;
|
||||
using Spring.Objects;
|
||||
using Spring.Objects.Factory.Xml;
|
||||
|
||||
namespace Spring.Aop.Framework.DynamicProxy
|
||||
{
|
||||
[TestFixture]
|
||||
public class IsAopProxyTests
|
||||
{
|
||||
private TestObject _target;
|
||||
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
_target = new TestObject("Michael", 23);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TargetIsNotAProxy()
|
||||
{
|
||||
Assert.False(AopUtils.IsAopProxy(_target));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsCompositionProxy()
|
||||
{
|
||||
var pf = new ProxyFactory(typeof(ITestObject), new DebugAdvice());
|
||||
pf.Target = _target;
|
||||
Assert.False(pf.ProxyTargetType);
|
||||
|
||||
var proxy = (ITestObject)pf.GetProxy();
|
||||
|
||||
Assert.True(AopUtils.IsCompositionAopProxy(proxy));
|
||||
Assert.True(AopUtils.IsAopProxy(proxy));
|
||||
Assert.IsNotInstanceOf<TestObject>(proxy);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsDecoratorProxy()
|
||||
{
|
||||
var pf = new ProxyFactory(new DebugAdvice());
|
||||
pf.Target = _target;
|
||||
pf.ProxyTargetType = true;
|
||||
|
||||
var proxy = (TestObject)pf.GetProxy();
|
||||
Assert.True(AopUtils.IsDecoratorAopProxy(proxy));
|
||||
Assert.True(AopUtils.IsAopProxy(proxy));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsInheritanceBasedProxyTypeReturnsFalseForNull()
|
||||
{
|
||||
Assert.False(AopUtils.IsInheritanceAopProxyType(null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsInheritanceBasedProxyReturnsFalseForNull()
|
||||
{
|
||||
Assert.False(AopUtils.IsInheritanceAopProxy(null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void IsInheritanceBasedProxy()
|
||||
{
|
||||
using (var ctx = new XmlApplicationContext(ReadOnlyXmlTestResource.GetFilePath("IsAopProxyTests.xml", this.GetType())))
|
||||
{
|
||||
var proxy = (TestObject)ctx["michael"];
|
||||
Assert.AreEqual("Michael", proxy.Name);
|
||||
Assert.True(AopUtils.IsInheritanceAopProxyType(proxy.GetType()));
|
||||
Assert.True(AopUtils.IsInheritanceAopProxy(proxy));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<objects xmlns="http://www.springframework.net"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:aop="http://www.springframework.net/aop">
|
||||
|
||||
<object type="Spring.Aop.Framework.AutoProxy.InheritanceBasedAopConfigurer, Spring.Aop">
|
||||
<property name="ObjectNames">
|
||||
<list>
|
||||
<value>michael</value>
|
||||
</list>
|
||||
</property>
|
||||
<property name="InterceptorNames">
|
||||
<list>
|
||||
<value>debugInterceptor</value>
|
||||
</list>
|
||||
</property>
|
||||
</object>
|
||||
|
||||
<object id="michael" type="Spring.Objects.TestObject, Spring.Core.Tests">
|
||||
<property name="Age" value="23" />
|
||||
<property name="Name" value="Michael" />
|
||||
</object>
|
||||
|
||||
<object id="debugInterceptor" type="Spring.Aop.Advice.DebugAdvice, Spring.Aop.Tests" />
|
||||
|
||||
</objects>
|
||||
@@ -153,6 +153,7 @@
|
||||
<Compile Include="Aop\Framework\DynamicProxy\InheritanceAopProxyTests.cs" />
|
||||
<Compile Include="Aop\Framework\DynamicProxy\DecoratorAopProxyTests.cs" />
|
||||
<Compile Include="Aop\Framework\DynamicProxy\DefaultAopProxyFactoryTests.cs" />
|
||||
<Compile Include="Aop\Framework\DynamicProxy\IsAopProxyTests.cs" />
|
||||
<Compile Include="Aop\Framework\DynamicProxy\MockTargetSource.cs" />
|
||||
<Compile Include="Aop\Framework\HashtableCachingAdvisorChainFactoryTests.cs">
|
||||
<SubType>Code</SubType>
|
||||
@@ -277,6 +278,7 @@
|
||||
<EmbeddedResource Include="Data\Spring\Aop\Framework\adapter\withBPPContext.xml" />
|
||||
<EmbeddedResource Include="Data\Spring\Aop\Framework\adapter\withoutBPPContext.xml" />
|
||||
<EmbeddedResource Include="Aop\Framework\AutoProxy\advisorAutoProxyCreatorCircularReferencesTests.xml" />
|
||||
<EmbeddedResource Include="Aop\Framework\DynamicProxy\IsAopProxyTests.xml" />
|
||||
<Content Include="Data\Spring\Aop\Framework\AutoProxy\advisorAutoProxyCreator.xml" />
|
||||
<Content Include="Data\Spring\Aop\Framework\AutoProxy\objectNameAutoProxyCreatorTests.xml" />
|
||||
<Content Include="Data\Spring\Aop\Framework\innerBeanTarget.xml" />
|
||||
|
||||
Reference in New Issue
Block a user