public void CreateInstance_InterfaceWithConstraintGenericMethod_HasSameBehavior()
        {
            var handler  = ProxyTestHandlers.WriteMethodAndInvokeBaseHandler;
            var instance = new ListCreator <object>();
            var proxy    = new WrapProxyFactory <IListCreator <object> >(handler).CreateInstance(instance);

            Assert.IsNotNull(proxy.Create <List <object> >());
        }
        public void CreateInstance_DuplicateInterface_HasSameBehavior()
        {
            var handler  = ProxyTestHandlers.WriteMethodAndInvokeBaseHandler;
            var instance = new FakeClonable();
            var proxy    = new WrapProxyFactory <IFakeClonable>(handler).CreateInstance(instance);

            Assert.AreSame(instance, proxy.Clone());
            Assert.AreNotSame(instance, ((ICloneable)proxy).Clone());
        }
        public void CreateInstance_Interface_HasSameBehavior()
        {
            var handler  = ProxyTestHandlers.WriteMethodAndInvokeBaseHandler;
            var instance = new List <int>();
            var proxy    = new WrapProxyFactory <IList <int> >(handler).CreateInstance(instance);

            for (int index = 0; index < 10; index++)
            {
                proxy.Add(index);
            }
            Assert.AreEqual(10, proxy.Count);
        }