public void AddInterfaceWhenConfigurationIsFrozen() { ProxyFactory factory = new ProxyFactory(); factory.IsFrozen = true; Assert.Throws <AopConfigException>(() => factory.AddInterface(typeof(ITestObject))); }
/// <summary> /// Creates a new proxy for the supplied <paramref name="proxyInterface"/> /// and <paramref name="interceptor"/>. /// </summary> /// <remarks> /// <p> /// This is a convenience method for creating a proxy for a single /// interceptor. /// </p> /// </remarks> /// <param name="proxyInterface"> /// The interface that the proxy must implement. /// </param> /// <param name="interceptor"> /// The interceptor that the proxy must invoke. /// </param> /// <returns> /// A new AOP proxy for the supplied <paramref name="proxyInterface"/> /// and <paramref name="interceptor"/>. /// </returns> public static object GetProxy(Type proxyInterface, IInterceptor interceptor) { ProxyFactory proxyFactory = new ProxyFactory(); proxyFactory.AddInterface(proxyInterface); proxyFactory.AddAdvice(interceptor); return(proxyFactory.GetProxy()); }
public void AddRepeatedInterface() { ITimeStamped tst = new AnonymousClassTimeStamped(this); ProxyFactory pf = new ProxyFactory(tst); // We've already implicitly added this interface. // This call should be ignored without error pf.AddInterface(typeof(ITimeStamped)); // All cool ITimeStamped ts = (ITimeStamped)pf.GetProxy(); }
public void AdvisedSupportListenerMethodsAre_NOT_CalledIfProxyHasNotBeenCreated() { IAdvisedSupportListener listener = MockRepository.GenerateMock <IAdvisedSupportListener>(); ProxyFactory factory = new ProxyFactory(new TestObject()); factory.AddListener(listener); // must not fire the AdviceChanged callback... factory.AddAdvice(new NopInterceptor()); // must not fire the InterfacesChanged callback... factory.AddInterface(typeof(ISerializable)); listener.AssertWasNotCalled(x => x.AdviceChanged(Arg <AdvisedSupport> .Is.Anything)); listener.AssertWasNotCalled(x => x.InterfacesChanged(Arg <AdvisedSupport> .Is.Anything)); }
public void AdvisedSupportListenerMethodsAreCalledAppropriately() { IAdvisedSupportListener listener = MockRepository.GenerateMock <IAdvisedSupportListener>(); ProxyFactory factory = new ProxyFactory(new TestObject()); factory.AddListener(listener); // must fire the Activated callback... factory.GetProxy(); // must fire the AdviceChanged callback... factory.AddAdvice(new NopInterceptor()); // must fire the InterfacesChanged callback... factory.AddInterface(typeof(ISerializable)); listener.AssertWasCalled(x => x.Activated(Arg <AdvisedSupport> .Is.NotNull)); listener.AssertWasCalled(x => x.AdviceChanged(Arg <AdvisedSupport> .Is.NotNull)); listener.AssertWasCalled(x => x.InterfacesChanged(Arg <AdvisedSupport> .Is.NotNull)); }