public void ProxyFactoryTest() { AdaptiveFactory <ProxyBase> proxyFactory = AdaptiveFactory.CreateProxyFactory <ProxyBase>("Target"); Assert.AreEqual(1, proxyFactory.MethodHandlers.Count); Assert.AreEqual(0, proxyFactory.PropertyHandlers.Count); Assert.AreEqual(0, proxyFactory.EventHandlers.Count); Target target = new Target(); ITarget proxy = (ITarget)Activator.CreateInstance(proxyFactory.Implement <ITarget>(), target); Assert.IsNotNull(proxy); Assert.AreEqual(5, proxy.Add(2, 3)); target.Value = 42; Assert.AreEqual(42, proxy.Value); proxy.Value = 21; Assert.AreEqual(21, target.Value); }