[Test]
public void
SelectorWorksForInterfacesOfInterfaceProxyWithoutTarget()
{
var options = new ProxyGenerationOptions
{
Selector = new
TypeInterceptorSelector<ReturnFiveInterceptor>()
};
var proxy =
generator.CreateInterfaceProxyWithoutTarget(typeof(ISimpleInterface),
new[]
{typeof(ISimpleInterfaceWithProperty)}, options,
new
ReturnFiveInterceptor()) as ISimpleInterfaceWithProperty;
Assert.IsNotNull(proxy);
var i = proxy.Age;
Assert.AreEqual(5, i);
}
All green.
I will package them up into a patch as soon as I figure out how to
change my VS to use tabs instead of spaces ;)
Krzysztof
Craig Neuwirt pisze:
> The only other test would be to pass an additional interface in the
> ProxtOptions which is what WCF does (IContextChannel in that case(
>
> 2009/1/18 Krzysztof Koźmic <[email protected]
> <mailto:[email protected]>>
>
> Craig Neuwirt pisze:
>> So will this still work with interface proxy without target?
> like a charm.
>
> I added these two tests to check for that and they both pass. Any
> other scenario you had in mind?
>
>
> [Test]
> public void SelectorWorksForInterfaceProxyWithoutTarget()
> {
> var options = new ProxyGenerationOptions
> {
> Selector = new
> TypeInterceptorSelector<ReturnNewTInterceptor>()
> };
> var proxy =
>
> generator.CreateInterfaceProxyWithoutTarget(typeof(ISimpleInterface),
> new Type[0], options,
> new
> ReturnNewTInterceptor()) as ISimpleInterface;
> Assert.IsNotNull(proxy);
> var i = proxy.Do();
> Assert.AreEqual(0, i);
> }
>
> [Test]
> [ExpectedException(typeof(NotImplementedException),
> ExpectedMessage = "This is a DynamicProxy2 error: the interceptor
> attempted to 'Proceed' for a method without a target, for example,
> an interface method or an abstract method")]
> public void
>
> ProxyThrowsForInterfaceProxyWithoutTargetWhenSelectorSelectsNoInterceptor()
> {
> var options = new ProxyGenerationOptions
> {
> Selector = new
> TypeInterceptorSelector<AddTwoInterceptor>()
> };
> var interceptor = new CallCountingInterceptor();
> var proxy =
>
> generator.CreateInterfaceProxyWithoutTarget(typeof(ISimpleInterface),
> new Type[0], options,
>
> interceptor) as ISimpleInterface;
> Assert.IsNotNull(proxy);
> var i = proxy.Do();
>
> }
>
>>
>> 2009/1/18 Jonathon Rossi <[email protected]
>> <mailto:[email protected]>>
>>
>> Applied in r5522. Also removed UseSelector property as indicated.
>>
>> Please use tabs next time :)
>>
>> Thanks. If you find any problems let me know so we can get
>> them sorted.
>>
>>
>> On Wed, Jan 14, 2009 at 8:49 AM, Krzysztof Koźmic
>> <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>>
>> Hi,
>>
>> I finally found some time to sit and re-implement the
>> iinterceptor
>> selector support in DP like we discussed in the other thread.
>> I uploaded the patch here:
>>
>> http://support.castleproject.org/projects/DYNPROXY/issues/view/DYNPROXY-ISSUE-37
>> (the *_byref file)
>> along with screenshot that shows how generated code looks
>> now.
>> Please review it and if you have any comments or find any
>> issues with
>> the patch, ping me.
>>
>> PS
>>
>> After I uploaded it I remembered that I forgot to remove
>> the UseSelector
>> property. If you're going to apply the patch, please
>> remove it first (it
>> affects few classes and tests so they will have to be
>> updated as well)
>>
>> cheers
>>
>> Krzysztof
>>
>>
>>
>>
>>
>> --
>> Jonathon Rossi
>>
>>
>>
>>
>>
>>
>
>
>
>
>
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Castle Project Development List" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/castle-project-devel?hl=en
-~----------~----~----~----~------~----~------~--~---