예제 #1
0
        public void CommonUtilities_TestGetAssemblyFromCompilation_Failure()
        {
            string code = @"using System;
                            namespace Sample { 
                                public class SampleClass 
                                {
                                } 
                            }";

            Compilation       compilation = GetCompilation(code, Path.GetRandomFileName(), null);
            CompilationResult result      = CommonUtilities.GetAssemblyFromCompilation(loadContext, compilation);

            Assert.False(result.Success);
            Assert.True(result.ErrorMessages.Any());
        }
예제 #2
0
        public void CommonUtilities_TestGetAssemblyFromCompilation()
        {
            // TODO Use Msbuild Project here.
            var projectContext = GetProjectContext(testAppPath, false);
            IEnumerable <MetadataReference> references = projectContext.CompilationAssemblies.SelectMany(c => c.GetMetadataReference());
            string code = @"using System;
                            namespace Sample { 
                                public class SampleClass 
                                {
                                } 
                            }";

            Compilation       compilation = GetCompilation(code, Path.GetRandomFileName(), references);
            CompilationResult result      = CommonUtilities.GetAssemblyFromCompilation(loadContext, compilation);

            Assert.True(result.Success);
            Assert.True(result.Assembly.DefinedTypes.Where(_ => _.Name == "SampleClass").Any());
        }
예제 #3
0
        public void CommonUtilities_TestGetAssemblyFromCompilation()
        {
            LibraryExporter exporter = new LibraryExporter(_projectContext, _applicationInfo);

            LibraryManager manager = new LibraryManager(_projectContext);
            IEnumerable <MetadataReference> references = exporter.GetAllExports().SelectMany(export => export.GetMetadataReferences());
            string code = @"using System;
                            namespace Sample { 
                                public class SampleClass 
                                {
                                } 
                            }";

            Compilation       compilation = GetCompilation(code, Path.GetRandomFileName(), references);
            CompilationResult result      = CommonUtilities.GetAssemblyFromCompilation(loadContext, compilation);

            Assert.True(result.Success);
            Assert.True(result.Assembly.DefinedTypes.Where(_ => _.Name == "SampleClass").Any());
        }
예제 #4
0
        public void CommonUtilities_TestGetAssemblyFromCompilation_MsBuild()
        {
            using (var fileProvider = new TemporaryFileProvider())
            {
                new MsBuildProjectSetupHelper().SetupProjects(fileProvider, _outputHelper);
                var path = Path.Combine(fileProvider.Root, "Root", MsBuildProjectStrings.RootProjectName);

                var projectContext = GetProjectContext(path, true);

                var references = projectContext.CompilationAssemblies.SelectMany(c => c.GetMetadataReference());
                var code       = @"using System;
                            namespace Sample { 
                                public class SampleClass 
                                {
                                } 
                            }";

                var compilation = GetCompilation(code, Path.GetRandomFileName(), references);
                var result      = CommonUtilities.GetAssemblyFromCompilation(loadContext, compilation);

                Assert.True(result.Success);
                Assert.True(result.Assembly.DefinedTypes.Where(_ => _.Name == "SampleClass").Any());
            }
        }