public static IInterfaceToProxy CreateProxy(Func <IInterfaceToProxy> factory, IAsyncInterceptor interceptor)
        {
            IInterfaceToProxy implementation = factory();
            IInterfaceToProxy proxy          = Generator.CreateInterfaceProxyWithTargetInterface(implementation, interceptor);

            return(proxy);
        }
        protected WhenExceptionInterceptingSynchronousResultMethodsBase(int msDelay)
        {
            // The delay is used to simulate work my the interceptor, thereof not always continuing on the same thread.
            var interceptor = new TestAsyncInterceptorBase(_log, msDelay);

            _proxy = ProxyGen.CreateProxy(_log, interceptor);
        }
Beispiel #3
0
        public WhenProcessingSynchronousResultMethods(ITestOutputHelper output)
        {
            string randomValue = "randomValue_" + Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture);

            _log         = new ListLogger(output);
            _interceptor = new TestProcessingAsyncInterceptor(_log, randomValue);
            _proxy       = ProxyGen.CreateProxy(_log, _interceptor);
        }
        public static IInterfaceToProxy CreateProxy(Func <IInterfaceToProxy> factory, IMiCakeInterceptor miCakeInterceptor)
        {
            IInterfaceToProxy implementation    = factory();
            IMiCakeProxy      castleMiCakeProxy = new CastleMiCakeProxyProvider().GetMiCakeProxy();
            IInterfaceToProxy proxy             = castleMiCakeProxy.CreateInterfaceProxyWithTarget <IInterfaceToProxy>(implementation, miCakeInterceptor);

            return(proxy);
        }
Beispiel #5
0
        protected WhenInterceptingAsynchronousResultMethodsBase(
            ITestOutputHelper output,
            bool asyncB4Proceed,
            int msDelayAfterProceed)
        {
            _log = new ListLogger(output);

            // The delay is used to simulate work my the interceptor, thereof not always continuing on the same thread.
            var interceptor = new TestAsyncInterceptorBase(_log, asyncB4Proceed, msDelayAfterProceed);

            _proxy = ProxyGen.CreateProxy(_log, interceptor);
        }
Beispiel #6
0
        protected TimingAsynchronousResultMethodCompletedAndIncompleteBase(ITestOutputHelper output, bool alwaysCompleted)
        {
            _log = new ListLogger(output);

            IInterfaceToProxy AlwaysCompletedFactory() => new ClassWithAlwaysCompletedAsync(_log);
            IInterfaceToProxy AlwaysIncompleteFactory() => new ClassWithAlwaysIncompleteAsync(_log);

            _interceptor = new TestAsyncTimingInterceptor(_log);
            _proxy       = ProxyGen.CreateProxy(
                alwaysCompleted ? AlwaysCompletedFactory : (Func <IInterfaceToProxy>)AlwaysIncompleteFactory,
                _interceptor);
        }
Beispiel #7
0
        protected AsynchronousResultMethodCompletedAndIncompleteBase(ITestOutputHelper output, bool alwaysCompleted)
        {
            _log = new ListLogger(output);

            IInterfaceToProxy AlwaysCompletedFactory() => new ClassWithAlwaysCompletedAsync(_log);
            IInterfaceToProxy AlwaysIncompleteFactory() => new ClassWithAlwaysIncompleteAsync(_log);

            var interceptor = new TestAsyncInterceptorBase(_log, asyncB4Proceed: true, msDelayAfterProceed: 10);

            _proxy = ProxyGen.CreateProxy(
                alwaysCompleted ? AlwaysCompletedFactory : (Func <IInterfaceToProxy>)AlwaysIncompleteFactory,
                interceptor);
        }
Beispiel #8
0
        public async Task ExtendInterfaceProxyGenerator(
            Func <IProxyGenerator, ListLogger, IInterfaceToProxy> proxyFactory)
        {
            // Act
            IInterfaceToProxy proxy = proxyFactory(Generator, _log);
            Guid result             = await proxy.AsynchronousResultMethod().ConfigureAwait(false);

            // Assert
            const string methodName = nameof(IInterfaceToProxy.AsynchronousResultMethod);

            Assert.NotEqual(Guid.Empty, result);
            Assert.Equal(4, _log.Count);
            Assert.Equal($"{methodName}:InterceptStart", _log[0]);
            Assert.Equal($"{methodName}:InterceptEnd", _log[3]);
        }
 public WhenProcessingSynchronousResultMethodsWithTheReturnValue()
 {
     _interceptor = new TestProcessingReturnValueAsyncInterceptor(_log);
     _proxy       = ProxyGen.CreateProxy(_log, _interceptor);
 }
 public WhenInterceptingSynchronousVoidMethods(ITestOutputHelper output)
 {
     _log   = new ListLogger(output);
     _proxy = ProxyGen.CreateProxy(_log, new TestAsyncInterceptor(_log));
 }
 public WhenTimingSynchronousResultMethods(ITestOutputHelper output)
 {
     _log         = new ListLogger(output);
     _interceptor = new TestAsyncTimingInterceptor(_log);
     _proxy       = ProxyGen.CreateProxy(_log, _interceptor);
 }
 public WhenInterceptingSynchronousResultMethods()
 {
     _proxy = ProxyGen.CreateProxy(_log, new TestAsyncInterceptor(_log));
 }
        public CastleMiCakeAopTest(ITestOutputHelper output)
        {
            _log = new ListLogger(output);

            _proxy = ProxyGen.CreateProxy(_log, new TestMiCakeInterceptor(_log));
        }
Beispiel #14
0
 public WhenTimingSynchronousResultMethods()
 {
     _interceptor = new TestAsyncTimingInterceptor(_log);
     _proxy       = ProxyGen.CreateProxy(_log, _interceptor);
 }
 public WhenProcessingSynchronousResultMethods()
 {
     _interceptor = new TestProcessingAsyncInterceptor(_log, "randomValue_" + Guid.NewGuid().ToString("N"));
     _proxy       = ProxyGen.CreateProxy(_log, _interceptor);
 }
Beispiel #16
0
 public WhenProcessingSynchronousResultMethodsWithTheReturnValue(ITestOutputHelper output)
 {
     _log         = new ListLogger(output);
     _interceptor = new TestProcessingReturnValueAsyncInterceptor(_log);
     _proxy       = ProxyGen.CreateProxy(_log, _interceptor);
 }
 public WhenProcessingSynchronousVoidMethods(ITestOutputHelper output)
 {
     _log         = new ListLogger(output);
     _interceptor = new TestProcessingAsyncInterceptor(_log, "randomValue_" + Guid.NewGuid().ToString("N"));
     _proxy       = ProxyGen.CreateProxy(_log, _interceptor);
 }
Beispiel #18
0
 public WhenInterceptingAsynchronousResultMethods(ITestOutputHelper output)
 {
     _log   = new ListLogger(output);
     _proxy = ProxyGen.CreateProxy(_log, new TestAsyncInterceptor(_log));
     _proxyWithAwaitBefore = ProxyGen.CreateProxy(_log, new TestAsyncInterceptorWithAwaitBefore(_log, 200));
 }