great!
2009/1/19 Krzysztof Koźmic <[email protected]>
> [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]>
>
>> 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]>
>>
>>> 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]> 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
-~----------~----~----~----~------~----~------~--~---