Esempio n. 1
0
        public void AddInterfaceWhenConfigurationIsFrozen()
        {
            ProxyFactory factory = new ProxyFactory();

            factory.IsFrozen = true;
            Assert.Throws <AopConfigException>(() => factory.AddInterface(typeof(ITestObject)));
        }
        public void AddInterfaceWhenConfigurationIsFrozen()
        {
            ProxyFactory factory = new ProxyFactory();

            factory.IsFrozen = true;
            factory.AddInterface(typeof(ITestObject));
        }
Esempio n. 3
0
        /// <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());
        }
Esempio n. 4
0
        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 AdvisedSupportListenerMethodsAre_NOT_CalledIfProxyHasNotBeenCreated()
        {
            IDynamicMock            mock     = new DynamicMock(typeof(IAdvisedSupportListener));
            IAdvisedSupportListener listener = (IAdvisedSupportListener)mock.Object;

            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));

            mock.Verify();
        }
Esempio n. 7
0
        public void AdvisedSupportListenerMethodsAre_NOT_CalledIfProxyHasNotBeenCreated()
        {
            IAdvisedSupportListener listener = A.Fake <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));

            A.CallTo(() => listener.AdviceChanged(A <AdvisedSupport> ._)).MustNotHaveHappened();
            A.CallTo(() => listener.InterfacesChanged(A <AdvisedSupport> ._)).MustNotHaveHappened();
        }
        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));
        }
Esempio n. 9
0
        public void AdvisedSupportListenerMethodsAreCalledAppropriately()
        {
            IAdvisedSupportListener listener = A.Fake <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));

            A.CallTo(() => listener.Activated(A <AdvisedSupport> .That.Not.IsNull())).MustHaveHappened();
            A.CallTo(() => listener.AdviceChanged(A <AdvisedSupport> .That.Not.IsNull())).MustHaveHappened();
            A.CallTo(() => listener.InterfacesChanged(A <AdvisedSupport> .That.Not.IsNull())).MustHaveHappened();
        }
        public void AdvisedSupportListenerMethodsAreCalledAppropriately()
        {
            IDynamicMock            mock     = new DynamicMock(typeof(IAdvisedSupportListener));
            IAdvisedSupportListener listener = (IAdvisedSupportListener)mock.Object;

            mock.Expect("Activated");
            mock.Expect("AdviceChanged");
            mock.Expect("InterfacesChanged");

            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));

            mock.Verify();
        }
        private IRequestHandler GetRequestHandler()
        {
            if (this.requestHandler == null)
            {
                ProxyFactory proxyFactory = new ProxyFactory(this);
                proxyFactory.AddInterface(typeof(IRequestHandler));
                proxyFactory.AddIntroduction(new DefaultIntroductionAdvisor(new HttpRequestHandler()));
                proxyFactory.ProxyTargetType = true;
                this.requestHandler = proxyFactory.GetProxy() as IRequestHandler;
            }

            return this.requestHandler;
        }
 public void AddInterfaceWhenConfigurationIsFrozen()
 {
     ProxyFactory factory = new ProxyFactory();
     factory.IsFrozen = true;
     Assert.Throws<AopConfigException>(() => factory.AddInterface(typeof(ITestObject)));
 }
Esempio n. 13
0
	    /// <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();
	    }
Esempio n. 14
0
        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));
        }
Esempio n. 15
0
 public void AddInterfaceWhenConfigurationIsFrozen()
 {
     ProxyFactory factory = new ProxyFactory();
     factory.IsFrozen = true;
     factory.AddInterface(typeof(ITestObject));
 }
 private IRepositoryInterface CreateProxy(RepositoryInterfaceImpl target)
 {
     MapPersistenceExceptionTranslator mpet = new MapPersistenceExceptionTranslator();
     mpet.AddTranslation(persistenceException, new InvalidDataAccessApiUsageException("", persistenceException));
     ProxyFactory pf = new ProxyFactory(target);
     pf.AddInterface(typeof(IRepositoryInterface));
     AddPersistenceExceptionTranslation(pf, mpet);
     return (IRepositoryInterface) pf.GetProxy();
 }
Esempio n. 17
0
        public void AdvisedSupportListenerMethodsAreCalledAppropriately()
        {
            IDynamicMock mock = new DynamicMock(typeof(IAdvisedSupportListener));
            IAdvisedSupportListener listener = (IAdvisedSupportListener)mock.Object;

            mock.Expect("Activated");
            mock.Expect("AdviceChanged");
            mock.Expect("InterfacesChanged");

            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));

            mock.Verify();
        }
Esempio n. 18
0
 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();
 }
Esempio n. 19
0
        public void AdvisedSupportListenerMethodsAre_NOT_CalledIfProxyHasNotBeenCreated()
        {
            IDynamicMock mock = new DynamicMock(typeof(IAdvisedSupportListener));
            IAdvisedSupportListener listener = (IAdvisedSupportListener)mock.Object;

            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));

            mock.Verify();
        }
Esempio n. 20
0
        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));
        }
        /// <summary>
        /// Initialize the proxy.
        /// </summary>
        private void InitializeProxy()
        {
            if (this.adviceChain.Length == 0)
            {
                return;
            }

            var factory = new ProxyFactory();
            foreach (var advice in this.adviceChain)
            {
                factory.AddAdvisor(new DefaultPointcutAdvisor(TruePointcut.True, advice));
            }

            factory.ProxyTargetType = false;
            factory.AddInterface(typeof(IContainerDelegate));

            // TODO: Is this really the right target??? Doesn't seem right.
            factory.Target = this;
            this.proxy = (IContainerDelegate)factory.GetProxy();
        }