コード例 #1
0
        public void CanUseVirtualMethodInterceptionWithAdditionalInterfacesThroughConfiguration()
        {
            IUnityContainer container = GetContainer("CanUseVirtualMethodInterceptionWithAdditionalInterfacesThroughConfiguration");

            HasVirtualMethods    proxy  = container.Resolve <HasVirtualMethods>();
            IAdditionalInterface casted = (IAdditionalInterface)proxy;
            int value = casted.DoNothing();

            Assert.AreEqual <int>(100, value);
        }
コード例 #2
0
        public void CanUseVirtualMethodInterceptionThroughConfiguration()
        {
            IUnityContainer container = GetContainer("CanUseVirtualMethodInterceptionThroughConfiguration");

            DoNothingInterceptionBehavior.Reset();
            HasVirtualMethods abc = container.Resolve <HasVirtualMethods>();

            abc.TargetMethod();

            Assert.AreEqual <string>("Called", DoNothingInterceptionBehavior.PreCalled);
            Assert.AreEqual <string>("Called", DoNothingInterceptionBehavior.PostCalled);
        }
コード例 #3
0
        public void CanMixDifferentInterceptionMechanismsForSameContainerConfiguration()
        {
            IUnityContainer container = GetContainer("CanMixDifferentInterceptionMechanismsForSameContainerConfiguration");

            IInterfaceA abc = container.Resolve <IInterfaceA>();

            abc.TargetMethod();

            Assert.AreEqual <string>("behaviour2", DoNothingInterceptionBehavior.BehaviourName);

            HasVirtualMethods abc1 = container.Resolve <HasVirtualMethods>();

            abc1.TargetMethod();

            Assert.AreEqual <string>("behaviour1", DoNothingInterceptionBehavior.BehaviourName);

            ImplementsMBRO abc2 = container.Resolve <ImplementsMBRO>();

            abc2.TargetMethod();

            Assert.AreEqual <string>("behaviour3", DoNothingInterceptionBehavior.BehaviourName);
        }