Beispiel #1
0
        public void MixinImplementingMoreThanOneInterface()
        {
            ProxyGenerationOptions proxyGenerationOptions = new ProxyGenerationOptions();

            ComplexMixin mixin_instance = new ComplexMixin();

            proxyGenerationOptions.AddMixinInstance(mixin_instance);

            AssertInvocationInterceptor interceptor = new AssertInvocationInterceptor();

            object proxy = generator.CreateClassProxy(
                typeof(SimpleClass),
                proxyGenerationOptions,
                interceptor
                );

            Assert.IsNotNull(proxy);
            Assert.IsTrue(typeof(SimpleClass).IsAssignableFrom(proxy.GetType()));

            Assert.IsFalse(interceptor.Invoked);

            IThird inter3 = proxy as IThird;

            Assert.IsNotNull(inter3);
            inter3.DoThird();

            Assert.IsTrue(interceptor.Invoked);
            Assert.AreSame(proxy, interceptor.proxy);
            Assert.AreSame(mixin_instance, interceptor.mixin);

            ISecond inter2 = proxy as ISecond;

            Assert.IsNotNull(inter2);
            inter2.DoSecond();

            Assert.IsTrue(interceptor.Invoked);
            Assert.AreSame(proxy, interceptor.proxy);
            Assert.AreSame(mixin_instance, interceptor.mixin);

            IFirst inter1 = proxy as IFirst;

            Assert.IsNotNull(inter1);
            inter1.DoFirst();

            Assert.IsTrue(interceptor.Invoked);
            Assert.AreSame(proxy, interceptor.proxy);
            Assert.AreSame(mixin_instance, interceptor.mixin);
        }
Beispiel #2
0
 public ObjectB(IThird child)
 {
     this.Child = child;
 }
 public OverloadedTestClass(IFirst first, ISecond second, IThird third)
 {
     _first = first;
     _second = second;
     _third = third;
 }
Beispiel #4
0
 public OverloadedTestClass(IFirst first, ISecond second, IThird third)
 {
     _first  = first;
     _second = second;
     _third  = third;
 }