示例#1
0
        public void SetUp()
        {
            _eventsCollection = new BlockingCollection <string>();
            ITestService service = new TestService(_eventsCollection);

            _interceptor = new TestInterceptor(_eventsCollection);

            _proxy = _generator.CreateInterfaceProxyWithTarget(service, _interceptor);
        }
        public void CheckAbstractImplementation()
        {
            TestInterceptor testInterceptor = new TestInterceptor();
            EndInterceptor endInterceptor = new EndInterceptor();

            testInterceptor.Next = endInterceptor;

            AssertEquals( 1, testInterceptor.Process( this, null ) );
        }
示例#3
0
        public void TestCreateEventProxySubscribe()
        {
            var interceptor  = new TestInterceptor();
            var interfaceObj =
                ProxyFactory.InitializeEventProxy <IEventTestInterface>(ProxyFactory.CreateProxy <IEventTestInterface>(), interceptor);

            Assert.False(interceptor.Subscribed);
            interfaceObj.TestEvent3 += (sender, args) => { };
            Assert.True(interceptor.Subscribed);
        }
        public void TestCreateEventProxySubscribe()
        {
            var interceptor = new TestInterceptor();

            var interfaceObj = CreateEvents <IEventTestInterface>(interceptor);

            Assert.False(interceptor.Subscribed);
            interfaceObj.TestEvent3 += (sender, args) => { };
            Assert.True(interceptor.Subscribed);
        }
        public void Multi_Insufficient_Arguments()
        {
            using var console = new CaptureConsoleOutput();
            var args        = new[] { "Cysharp" };
            var interceptor = new TestInterceptor();

            Host.CreateDefaultBuilder().RunConsoleAppFrameworkAsync <InterceptorTest_Multi>(args, interceptor);

            interceptor.Outputs.Should().Equal("OnEngineBeginAsync", "OnMethodBeginAsync", "OnMethodEndAsync", "OnEngineCompleteAsync");
            console.Output.Should().Contain("Usage");
        }
        public void TestCreateEventProxyRaiseWithParameter()
        {
            var interceptor  = new TestInterceptor();
            var interfaceObj = CreateEvents <IEventTestInterface>(interceptor);
            var raised       = false;

            interfaceObj.TestEvent3 += (sender, s) => raised = true;

            var raiser = (IEventInterceptorProxy)interfaceObj;

            raiser.TriggerEvent(2, "asd");
            Assert.True(raised);
        }
示例#7
0
        public void TestThatInterceptorExecute()
        {
            EmailSender emailSender     = new Dummy.DummyEmailSender();
            var         testInterceptor = new TestInterceptor();

            emailSender.AddInterceptor(testInterceptor);

            emailSender.Send(new MailMessage()).Wait();
            emailSender.Send(new MailMessage()).Wait();
            emailSender.Send(new MailMessage()).Wait();

            Assert.Equal(3, testInterceptor.SendingCallCount);
            Assert.Equal(3, testInterceptor.SentCallCount);
        }
示例#8
0
        public void TestCreateEventProxyRaiseWithParameter()
        {
            var interceptor  = new TestInterceptor();
            var interfaceObj =
                ProxyFactory.InitializeEventProxy <IEventTestInterface>(ProxyFactory.CreateProxy <IEventTestInterface>(), interceptor);
            var raised = false;

            interfaceObj.TestEvent3 += (sender, s) => raised = true;

            var raiser = (IEventInterceptorProxy)interfaceObj;

            raiser.TriggerEvent(1, TransmissionInfo.Empty, "asd");
            Assert.True(raised);
        }
        public void SingletonProxyWithPrototypeTarget()
        {
            TestObjectImpl.constructionCount = 0;
            IObjectFactory iof = new XmlObjectFactory(new ReadOnlyXmlTestResource("prototypeTarget.xml", GetType()));

            for (int i = 0; i < 10; i++)
            {
                TestObject to = (TestObject)iof.GetObject("testObjectSingleton");
                to.DoSomething();
            }
            TestInterceptor interceptor = (TestInterceptor)iof.GetObject("testInterceptor");

            Assert.AreEqual(1, TestObjectImpl.constructionCount);
            Assert.AreEqual(10, interceptor.invocationCount);
        }
示例#10
0
        public void CanCreateSimpleProxies()
        {
            var objectSource          = new ObjectSource();
            var attributedInterceptor = new TestInterceptor();

            objectSource.WithAttributedInterceptor(attributedInterceptor);
            var testObject = objectSource.Create <TestObject>();

            Assert.AreEqual(0, attributedInterceptor.Count);
            testObject.HasTestCounter();
            Assert.AreEqual(1, attributedInterceptor.Count);
            testObject.HasTestCounter();
            Assert.AreEqual(2, attributedInterceptor.Count);
            testObject.NoTestCounter();
            Assert.AreEqual(2, attributedInterceptor.Count);
        }
        public void TestCreateEventProxyUnsubscribe()
        {
            var interceptor  = new TestInterceptor();
            var interfaceObj = CreateEvents <IEventTestInterface>(interceptor);

            interfaceObj.TestEvent3 += Handler;
            Assert.True(interceptor.Subscribed);

            Assert.False(interceptor.Unsubscribed);
            interfaceObj.TestEvent3 -= Handler;
            Assert.True(interceptor.Unsubscribed);

            void Handler(object sender, string args)
            {
            }
        }
示例#12
0
        private static async Task TestInterception(Func <IInter, Inter, Task> test)
        {
            var interceptor = new TestInterceptor();

            var inter = new Inter();
            var gen   = new ProxyGenerator();
            var impl  = (IInter)gen.CreateInterfaceProxyWithTargetInterface(
                typeof(IInter),
                new Type[0],
                inter,
                interceptor);

            await test(impl, inter);

            Assert.Equal(1, interceptor.Count);
        }
        public void TestCreateNonGenericEventProxyRaise()
        {
            var interceptor  = new TestInterceptor();
            var interfaceObj = CreateEvents <IEventTestInterface>(interceptor);
            var raised       = false;

            interfaceObj.TestEvent2 += (sender, args) =>
            {
                Assert.Equal(EventArgs.Empty, args);
                raised = true;
            };

            var raiser = (IEventInterceptorProxy)interfaceObj;

            raiser.TriggerEvent(1, null);
            Assert.True(raised);
        }
        public void TestCreateEventProxyRaise()
        {
            var interceptor  = new TestInterceptor();
            var interfaceObj = CreateEvents <IEventTestInterface>(interceptor);
            var raised       = false;

            interfaceObj.TestEvent += (s, p) =>
            {
                Assert.Equal(23, p);
                raised = true;
            };

            var raiser = (IEventInterceptorProxy)interfaceObj;

            raiser.TriggerEvent(0, 23);
            Assert.True(raised);
        }
示例#15
0
        public void TestFilterEmailInterceptor()
        {
            EmailSender emailSender       = new Dummy.DummyEmailSender();
            var         filterInterceptor = new FilterEmailInterceptor();

            filterInterceptor.AddApprovedEmails("*@saritasa.com");
            emailSender.AddInterceptor(filterInterceptor);
            var testInterceptor = new TestInterceptor();

            emailSender.AddInterceptor(testInterceptor);

            emailSender.Send(new MailMessage("*****@*****.**", "*****@*****.**")).Wait();
            Assert.Equal(0, testInterceptor.SentCallCount);

            emailSender.Send(new MailMessage("*****@*****.**", "*****@*****.**")).Wait();
            Assert.Equal(1, testInterceptor.SentCallCount);
        }
示例#16
0
        public void TestCreateEventProxyRaise()
        {
            var interceptor  = new TestInterceptor();
            var interfaceObj =
                ProxyFactory.InitializeEventProxy <IEventTestInterface>(ProxyFactory.CreateProxy <IEventTestInterface>(), interceptor);
            var raised = false;

            interfaceObj.TestEvent += info =>
            {
                Assert.Equal(23, info);
                raised = true;
            };

            var raiser = (IEventInterceptorProxy)interfaceObj;

            raiser.TriggerEvent(0, 23, null);
            Assert.True(raised);
        }
示例#17
0
        public void BeforeSaveTest()
        {
            var ctx = new RibEfTestContext();

            var t1 = new AppTask {
                Id = 1
            };

            ctx.Tasks.Add(t1);
            var t1e     = ctx.Entry(t1);
            var invoked = false;
            var ic      = new TestInterceptor(t =>
            {
                Assert.AreEqual(t1, t);
                invoked = true;
            });

            ic.BeforeSave(t1e);
            Assert.IsTrue(invoked);
        }
示例#18
0
        public void IsApplicableTest()
        {
            var ic  = new TestInterceptor();
            var ctx = new RibEfTestContext();

            var t1 = new AppTask {
                Id = 1
            };
            var t2 = new AppTask {
                Id = 2
            };

            var t3 = new AppTask();

            var p1 = new Project {
                Id = 1
            };
            var p2 = new Project();

            ctx.Tasks.Attach(t1);
            ctx.Tasks.Attach(t2);
            ctx.Tasks.Add(t3);
            ctx.Set <Project>().Attach(p1);
            ctx.Set <Project>().Add(p2);

            var t1e = ctx.Entry(t1);
            var t2e = ctx.Entry(t2);
            var t3e = ctx.Entry(t3);
            var p1e = ctx.Entry(p1);
            var p2e = ctx.Entry(p2);

            Assert.IsFalse(ic.IsApplicable(t1e));
            Assert.IsFalse(ic.IsApplicable(t2e));
            Assert.IsTrue(ic.IsApplicable(t3e));
            Assert.IsFalse(ic.IsApplicable(p1e));
            Assert.IsFalse(ic.IsApplicable(p2e));
        }
        public void InterceptedSessionByConfiguration()
        {
            ISessionManager manager = container.Resolve <ISessionManager>();

            string sessionAlias = "intercepted";

            ISession session = manager.OpenSession(sessionAlias);
            Order    o       = new Order();

            o.Value = 9.3f;
            session.SaveOrUpdate(o);
            session.Close();

            session = manager.OpenSession(sessionAlias);
            session.Get(typeof(Order), 1);
            session.Close();

            TestInterceptor interceptor = container.Resolve <TestInterceptor>("nhibernate.session.interceptor.intercepted");

            Assert.IsNotNull(interceptor);
            Assert.IsTrue(interceptor.ConfirmOnSaveCall());
            Assert.IsTrue(interceptor.ConfirmInstantiationCall());
            interceptor.ResetState();
        }
示例#20
0
        public void OrderTest()
        {
            var ic = new TestInterceptor();

            Assert.AreEqual(int.MaxValue, ic.Order(null));
        }
        protected override Task Given(IConfigurationScenario <BusBuilderConfiguration> scenario)
        {
            TestInterceptor.Clear();

            return(base.Given(scenario));
        }
        protected override async Task Given()
        {
            await base.Given();

            TestInterceptor.Clear();
        }