public void RunTestsInSandbox()
        {
            var permissions = PermissionSets.GetMediumTrust(AppDomain.CurrentDomain.BaseDirectory, Environment.MachineName);
            var testResults =
                SandboxTestRunner.RunTestFixturesInSandbox(_testFixtureTypes, permissions, null).SelectMany(
                    r => r.TestResults).Where(r => r.Status != SandboxTestStatus.Ignored);

            Assert.That(testResults.Count(), Is.EqualTo(3));
            foreach (var testResult in testResults)
            {
                testResult.EnsureNotFailed();
            }
        }
        public void MediumTrust()
        {
            var permissions = PermissionSets
                              .GetMediumTrust(AppDomain.CurrentDomain.BaseDirectory, Environment.MachineName)
                              .Concat(new[] { new ReflectionPermission(ReflectionPermissionFlag.MemberAccess) })
                              .ToArray();

            var types = (from t in typeof(MediumTrustSqlBackendIntegrationTest).Assembly.GetTypes()
                         where t.Namespace == typeof(MediumTrustSqlBackendIntegrationTest).Namespace &&
                         t != typeof(MediumTrustSqlBackendIntegrationTest) &&
                         !t.IsAbstract && t.IsDefined(typeof(TestFixtureAttribute), false)
                         select t).ToArray();

            var testFixtureResults = SandboxTestRunner.RunTestFixturesInSandbox(types, permissions, null);
            var testResults        = testFixtureResults.SelectMany(r => r.TestResults).ToArray();

            foreach (var testResult in testResults)
            {
                testResult.EnsureNotFailed();
            }
            Assert.That(testResults.Count(r => r.Status == SandboxTestStatus.Succeeded), Is.GreaterThan(0));
        }
        public void MediumTrust()
        {
            var permissions = PermissionSets
                              .GetMediumTrust(AppDomain.CurrentDomain.BaseDirectory, Environment.MachineName)
                              .Concat(
                new IPermission[]
            {
                new ReflectionPermission(ReflectionPermissionFlag.MemberAccess),
                // new SecurityPermission (SecurityPermissionFlag.SerializationFormatter)
            })
                              .ToArray();

            var testFixtureResults = SandboxTestRunner.RunTestFixturesInSandbox(new[] { typeof(UnmappedItemExceptionTest) }, permissions, null);
            var testResults        = testFixtureResults.SelectMany(r => r.TestResults).ToArray();

            foreach (var testResult in testResults)
            {
                try
                {
                    testResult.EnsureNotFailed();
                }
                catch (TestFailedException)
                {
                    var securityException = testResult.Exception as SecurityException;
                    if (securityException != null)
                    {
                        Console.WriteLine("Action:");
                        Console.WriteLine(securityException.Action);
                        Console.WriteLine("Demanded:");
                        Console.WriteLine(securityException.Demanded);
                    }
                    throw;
                }
            }
            Assert.That(testResults.Count(r => r.Status == SandboxTestStatus.Succeeded), Is.GreaterThan(0));
        }
 public void SetUp()
 {
     _sandboxTestRunner = new SandboxTestRunner();
     _testFixtureTypes  = new[] { typeof(DummyTest1) };
 }