AppSecInc.ProcessDomain.UnitTests.TestProcessDomain.TestTypeFilterLevel C# (CSharp) Method

TestTypeFilterLevel() private method

private TestTypeFilterLevel ( ) : void
return void
        public void TestTypeFilterLevel()
        {
            // using an event handler requires type filter level Full for a remoting channel

            // by default, it's low, which will fail
            using (var domain = ProcessDomain.CreateDomain("Domain"))
            {
                var obj = (RemoteTestObject)domain.CreateInstanceAndUnwrap(TestObjectAssemblyName, TestObjectTypeName);

                Assert.Throws<SecurityException>(()=> obj.CallbackEvent += () => Assert.Fail("This should have failed"));
            }

            // now enable the remoting channel with type filter level Full
            var setup = new ProcessDomainSetup { TypeFilterLevel = TypeFilterLevel.Full };
            using (var domain = ProcessDomain.CreateDomain("Domain", setup))
            {
                var obj = (RemoteTestObject)domain.CreateInstanceAndUnwrap(TestObjectAssemblyName, TestObjectTypeName);

                obj.CalledBack = false;
                Assert.That(!obj.CalledBack);
                Assert.DoesNotThrow(() => obj.CallbackEvent += obj.SetCalledBack);
                obj.OnCallback();
                Assert.That(obj.CalledBack);
            }
        }