/// <summary>
            /// Check if everything is cleaned up.
            /// </summary>
            public void IsolatedRazorEngineService_CleanUpWorks()
            {
                var appDomain = SandboxCreator();

                using (var service = IsolatedRazorEngineService.Create(() => appDomain))
                {
                    string template = @"@Model.Name";

                    var result = service.RunCompile(template, "test", null, new { Name = "test" });
                    Assert.AreEqual("test", result);


                    ObjectHandle handle =
                        Activator.CreateInstanceFrom(
                            appDomain, typeof(AssemblyChecker).Assembly.ManifestModule.FullyQualifiedName,
                            typeof(AssemblyChecker).FullName
                            );

                    using (var localHelper = new AssemblyChecker())
                    {
                        Assert.False(localHelper.ExistsCompiledAssembly());
                    }
                    using (var remoteHelper = (AssemblyChecker)handle.Unwrap())
                    {
                        Assert.IsTrue(remoteHelper.ExistsCompiledAssembly());
                    }
                }
                Assert.Throws <AppDomainUnloadedException>(() => { Console.WriteLine(appDomain.FriendlyName); });
                using (var localHelper = new AssemblyChecker())
                {
                    Assert.False(localHelper.ExistsCompiledAssembly());
                }
            }
Beispiel #2
0
        private void PlayButton_Click(object sender, RoutedEventArgs e)
        {
            Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
            string result;

            try
            {
                result = new AssemblyChecker().GetMissingAssemblies();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error! Failed to Get Missing Assemblies", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (result == null)
            {
                new PlayerNameWindow().Show();
                Close();
            }
            else
            {
                MessageBox.Show($"These files are missing:{Environment.NewLine}{result}", "Error! Failed to Find Files", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
        public void CodeCheck_WithBlackList()
        {
            _checker = new AssemblyChecker(new [] { "Google.Protobuf" }, null);
            var code = ReadCode(typeof(TestContract.TestContract).Assembly.Location);

            Should.Throw <InvalidCodeException>(() => _checker.CodeCheck(code, true));
        }
Beispiel #4
0
        // Constructor
        private ScriptDomain(string name)
        {
            // Store the domain instance
            domain = this;

            // Create the app domain
            sandbox = AppDomain.CurrentDomain;

            // Create a security checker
            checker = new AssemblyChecker();
        }
            public void IsolatedRazorEngineService_CleanUpWorks()
            {
                var appDomain = SandboxCreator();
                using (var service = IsolatedRazorEngineService.Create(() => appDomain))
                {
                    string template = @"@Model.Name";

                    var result = service.RunCompile(template, "test", null, new { Name = "test" });
                    Assert.AreEqual("test", result);

                    ObjectHandle handle =
                        Activator.CreateInstanceFrom(
                            appDomain, typeof(AssemblyChecker).Assembly.ManifestModule.FullyQualifiedName,
                            typeof(AssemblyChecker).FullName
                        );

                    using (var localHelper = new AssemblyChecker())
                    {
                        Assert.False(localHelper.ExistsCompiledAssembly());
                    }
                    using (var remoteHelper = (AssemblyChecker)handle.Unwrap())
                    {
                        Assert.IsTrue(remoteHelper.ExistsCompiledAssembly());
                    }
                }
                Assert.Throws<AppDomainUnloadedException>(() => { Console.WriteLine(appDomain.FriendlyName); });
                using (var localHelper = new AssemblyChecker())
                {
                    Assert.False(localHelper.ExistsCompiledAssembly());
                }
            }
 public AssebmlyCheckerTests()
 {
     _checker = new AssemblyChecker(null, null);
 }