コード例 #1
0
        public void NotFreezablePersonRegister_Test_Fail()
        {
            Person per = new ProxyGenerator().CreateClassProxy <Person>();

            per.FirstName = "Foo";
            per.LastName  = "Bar";

            // by the current implementation the object have to be registered before it can be recognized as a freezable!
            Assert.IsFalse(Freezable.IsFreezable(per));

            Assert.IsFalse(Freezable.RegisterFreezable(per));

            Assert.IsFalse(Freezable.IsFreezable(per));
        }
コード例 #2
0
        public void RemoveInterceptorAtRuntime_Test()
        {
            Person per = new ProxyGenerator().CreateClassProxy <Person>(new FreezableInterceptor());

            per.FirstName = "Foo";
            per.LastName  = "Bar";

            Assert.IsTrue(Freezable.RegisterFreezable(per));

            Assert.IsTrue(Freezable.IsFreezable(per));

            Assert.AreEqual(1, ProxyHelper.GetInterceptorsField(per).Count());

            ProxyHelper.ExcudeInterceptors(per, typeof(FreezableInterceptor));

            Assert.AreEqual(0, ProxyHelper.GetInterceptorsField(per).Count());
        }
コード例 #3
0
        public void AddInterceptorAtRuntime_Test()
        {
            Person per = new ProxyGenerator().CreateClassProxy <Person>();

            per.FirstName = "Foo";
            per.LastName  = "Bar";

            // by the current implementation the object have to be registered before it can be recognized as a freezable!
            Assert.IsFalse(Freezable.IsFreezable(per));

            Assert.IsFalse(Freezable.RegisterFreezable(per));

            ProxyHelper.AddInterceptor <FreezableInterceptor>(per);

            Assert.IsTrue(Freezable.RegisterFreezable(per));

            Assert.IsTrue(Freezable.IsFreezable(per));
        }