public ExportDescriptorProvider[] AsExportDescriptionProvider(ILoggerFactory loggerFactory) { var listener = new ProjectLoadListener(loggerFactory, this); return(new ExportDescriptorProvider[] { MefValueProvider.From <IMSBuildEventSink>(listener) }); }
public void GetTargetFramework_NoTFM_ReturnsEmpty() { // Arrange var projectInstance = new ProjectInstance(ProjectRootElement.Create()); // Act var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance); // Assert Assert.Empty(tfm); }
public void GetTargetFramework_NoTFM_ReturnsTargetFrameworkVersion() { // Arrange const string targetFramework = "v4.6.1"; var projectInstance = new ProjectInstance(ProjectRootElement.Create()); projectInstance.SetProperty(ProjectLoadListener.TargetFrameworkVersion, targetFramework); // Act var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance); // Assert Assert.Equal(targetFramework, tfm.First()); }
public async Task The_target_framework_is_emitted() { // Arrange var expectedTFM = "netcoreapp2.1"; var messages = new List <ProjectConfigurationMessage>(); var emitter = new ProjectLoadTestEventEmitter(messages); var listener = new ProjectLoadListener(LoggerFactory, emitter); var exports = new ExportDescriptorProvider[] { MefValueProvider.From <IMSBuildEventSink>(listener) }; using (var testProject = await TestAssets.Instance.GetTestProjectAsync("HelloWorld")) using (var host = CreateMSBuildTestHost(testProject.Directory, exports)) { Assert.Single(messages); Assert.Equal(messages[0].TargetFrameworks.First(), expectedTFM); } }
public async Task The_hashed_references_of_the_source_files_are_emitted() { // Arrange var messages = new List <ProjectConfigurationMessage>(); var emitter = new ProjectLoadTestEventEmitter(messages); var listener = new ProjectLoadListener(LoggerFactory, emitter); var exports = new ExportDescriptorProvider[] { MefValueProvider.From <IMSBuildEventSink>(listener) }; using (var testProject = await TestAssets.Instance.GetTestProjectAsync("HelloWorld")) using (var host = CreateMSBuildTestHost(testProject.Directory, exports)) { Assert.Single(messages); Assert.Single(messages[0].FileExtensions); Assert.Equal(messages[0].FileExtensions.First(), GetHashedFileExtension(".cs")); } }
public async Task If_there_is_a_solution_file_the_project_guid_present_in_it_is_emitted() { // Arrange var messages = new List <ProjectConfigurationMessage>(); var emitter = new ProjectLoadTestEventEmitter(messages); var listener = new ProjectLoadListener(LoggerFactory, emitter); var exports = new ExportDescriptorProvider[] { MefValueProvider.From <IMSBuildEventSink>(listener) }; using (var testProject = await TestAssets.Instance.GetTestProjectAsync("ProjectAndSolution")) using (var host = CreateMSBuildTestHost(testProject.Directory, exports)) { var expectedGuid = "A4C2694D-AEB4-4CB1-8951-5290424EF883".ToLower(); Assert.Single(messages); Assert.Equal(messages[0].ProjectId, expectedGuid); } }
public async Task If_there_is_no_solution_file_the_hash_of_project_file_content_and_name_is_emitted() { // Arrange var messages = new List <ProjectConfigurationMessage>(); var emitter = new ProjectLoadTestEventEmitter(messages); var listener = new ProjectLoadListener(LoggerFactory, emitter); var exports = new ExportDescriptorProvider[] { MefValueProvider.From <IMSBuildEventSink>(listener) }; using (var testProject = await TestAssets.Instance.GetTestProjectAsync("HelloWorld")) using (var host = CreateMSBuildTestHost(testProject.Directory, exports)) { var projectFileContent = File.ReadAllText(Directory.GetFiles(testProject.Directory, "*.csproj").Single()); var expectedGuid = GetHashedReference($"Filename: HelloWorld.csproj\n{projectFileContent}"); Assert.Single(messages); Assert.Equal(messages[0].ProjectId, expectedGuid); } }
public async Task If_there_are_multiple_target_frameworks_they_are_emitted() { // Arrange var messages = new List <ProjectConfigurationMessage>(); var emitter = new ProjectLoadTestEventEmitter(messages); var listener = new ProjectLoadListener(LoggerFactory, emitter); var exports = new ExportDescriptorProvider[] { MefValueProvider.From <IMSBuildEventSink>(listener) }; using (var testProject = await TestAssets.Instance.GetTestProjectAsync("ProjectWithMultiTFMLib/Lib")) using (var host = CreateMSBuildTestHost(testProject.Directory, exports)) { Assert.Single(messages); var tfm = messages[0].TargetFrameworks.ToArray(); Assert.Equal(2, tfm.Count()); Assert.Equal("netstandard1.3", tfm[0]); Assert.Equal("netstandard2.0", tfm[1]); } }
public async Task Given_a_restored_project_the_references_are_emitted() { var messages = new List <ProjectConfigurationMessage>(); var emitter = new ProjectLoadTestEventEmitter(messages); var listener = new ProjectLoadListener(LoggerFactory, emitter); var exports = new ExportDescriptorProvider[] { MefValueProvider.From <IMSBuildEventSink>(listener) }; using (var testProject = await TestAssets.Instance.GetTestProjectAsync("HelloWorld")) { var dotnetCliService = new DotNetCliService(LoggerFactory, emitter); await dotnetCliService.RestoreAsync(testProject.Directory); using (var host = CreateMSBuildTestHost(testProject.Directory, exports)) { Assert.Single(messages); Assert.NotEmpty(messages[0].References.Where(reference => reference == GetHashedReference("system.core"))); } } }