SPRNET-1262

added test to demonstrate proper functionality when passing CustomAttributeBuilder instance to the proxy builder
This commit is contained in:
sbohlen
2010-08-18 16:06:58 +00:00
parent dfc45053fb
commit e793a01220

View File

@@ -149,7 +149,30 @@ namespace Spring.Proxy
Assert.AreEqual(typeof(FakeServiceKnownTypeAttribute), attrs[0].GetType(), "Wrong System.Type of Attribute applied to the target type.");
FakeServiceKnownTypeAttribute fgsta = attrs[0] as FakeServiceKnownTypeAttribute;
Assert.AreEqual(typeof(TestObject), fgsta.Type);
Assert.AreEqual(typeof(TestObject), fgsta.Type, "Property 'Type' on Target Attribute not set!");
}
[Test]
// SPRNET-1262
public void AppliesSpecificTypeAttributeWithNoPropertySettersToTargetTypeUsingCustomAttributeBuilder()
{
ConstructorInfo ci = typeof(FakeServiceKnownTypeAttribute).GetConstructor(new Type[] { typeof(Type) });
CustomAttributeBuilder cab = new CustomAttributeBuilder(ci, new object[] { typeof(TestObject) });
IProxyTypeBuilder builder = GetProxyBuilder();
builder.TargetType = typeof(ClassWithFakeServiceKnownTypeAttribute);
builder.TypeAttributes.Add(cab);
Type proxy = builder.BuildProxyType();
Assert.IsNotNull(proxy, "The proxy generated by a (valid) call to BuildProxy() was null.");
object[] attrs = proxy.GetCustomAttributes(false);
Assert.IsNotNull(attrs, "Should have had 1 attribute applied to the target type.");
Assert.AreEqual(1, attrs.Length, "Should have had 1 attribute applied to the target type.");
Assert.AreEqual(typeof(FakeServiceKnownTypeAttribute), attrs[0].GetType(), "Wrong System.Type of Attribute applied to the target type.");
FakeServiceKnownTypeAttribute fgsta = attrs[0] as FakeServiceKnownTypeAttribute;
Assert.AreEqual(typeof(TestObject), fgsta.Type, "Property 'Type' on Target Attribute not set!");
}
[Test]
@@ -176,10 +199,10 @@ namespace Spring.Proxy
{
IProxyTypeBuilder builder = GetProxyBuilder();
builder.TargetType = typeof(ClassWithGuidAttribute);
Type proxy = builder.BuildProxyType();
Assert.IsNotNull(proxy, "The proxy generated by a (valid) call to BuildProxy() was null.");
object[] attrs = proxy.GetCustomAttributes(false);
Assert.IsNotNull(attrs, "Should have had 1 attribute applied to the target type.");
Assert.AreEqual(1, attrs.Length, "Should have had 1 attribute applied to the target type.");
@@ -902,8 +925,8 @@ namespace Spring.Proxy
// SPRNET-1134
public class MultipleMarkerClass : ISomeMarkerInterface
{
[return: Marker(Count=0)]
[return: Marker(Count=1)]
[return: Marker(Count = 0)]
[return: Marker(Count = 1)]
public string MarkerMethod(int param1, [Marker(Count = 0)][Marker(Count = 1)]string param2)
{
return string.Empty;
@@ -979,7 +1002,7 @@ namespace Spring.Proxy
}
}
[AttributeUsage(AttributeTargets.All, AllowMultiple=true)]
[AttributeUsage(AttributeTargets.All, AllowMultiple = true)]
public sealed class MarkerAttribute : Attribute
{
private int _count;