public void GetProviderServices_returns_null_when_unknown()
        {
            var domain = AppDomain.CreateDomain("ExecutorWrapperTests", null, AppDomain.CurrentDomain.SetupInformation);

            try
            {
                var executor = new ExecutorWrapper(
                    domain,
                    Path.GetFileName(GetType().Assembly.CodeBase));

                Assert.Null(executor.GetProviderServices("My.Fake.Provider"));
            }
            finally
            {
                AppDomain.Unload(domain);
            }
        }
Ejemplo n.º 2
0
        public void GetProviderServices_returns_null_when_no_project_assembly()
        {
            var domain = AppDomain.CreateDomain("ExecutorWrapperTests", null, AppDomain.CurrentDomain.SetupInformation);

            try
            {
                var executor = new ExecutorWrapper(
                    domain,
                    "UnknownProject.dll");

                Assert.Null(executor.GetProviderServices("System.Data.SqlClient"));
            }
            finally
            {
                AppDomain.Unload(domain);
            }
        }
        public void GetProviderServices_returns_assembly_qualified_type_name()
        {
            var domain = AppDomain.CreateDomain("ExecutorWrapperTests", null, AppDomain.CurrentDomain.SetupInformation);

            try
            {
                var executor = new ExecutorWrapper(
                    domain,
                    Path.GetFileName(GetType().Assembly.CodeBase));

                var typeName = executor.GetProviderServices("System.Data.SqlClient");

                Assert.Equal(typeof(SqlProviderServices).AssemblyQualifiedName, typeName);
            }
            finally
            {
                AppDomain.Unload(domain);
            }
        }
Ejemplo n.º 4
0
        public ProjectExecutionContext(Project project, IServiceProvider serviceProvider)
        {
            Debug.Assert(project != null, "project is null.");
            Debug.Assert(!VsUtils.IsMiscellaneousProject(project), "project is misc files project.");

            _domain = AppDomain.CreateDomain(
                "ProjectExecutionContextDomain",
                null,
                new AppDomainSetup
            {
                ApplicationBase   = VsUtils.GetProjectTargetDir(project, serviceProvider),
                ConfigurationFile = VsUtils.GetProjectConfigurationFile(project, serviceProvider),
                ShadowCopyFiles   = "true"       // Prevents locking
            });

            var dataDirectory = VsUtils.GetProjectDataDirectory(project, serviceProvider);

            if (dataDirectory != null)
            {
                _domain.SetData("DataDirectory", dataDirectory);
            }

            _executor = new ExecutorWrapper(_domain, VsUtils.GetProjectTargetFileName(project));
        }
Ejemplo n.º 5
0
        public void GetProviderServices_returns_null_when_no_EntityFramework_assembly()
        {
            var domain = AppDomain.CreateDomain(
                "ExecutorWrapperTests",
                null,
                new AppDomainSetup
            {
                // NOTE: This will cause assembly resolution for EntityFramework to fail
                ApplicationBase = Path.GetTempPath()
            });

            try
            {
                var executor = new ExecutorWrapper(
                    domain,
                    Path.GetFileName(GetType().Assembly.CodeBase));

                Assert.Null(executor.GetProviderServices("System.Data.SqlClient"));
            }
            finally
            {
                AppDomain.Unload(domain);
            }
        }