Skip to content

Commit

Permalink
do not hash target framework and change to project id
Browse files Browse the repository at this point in the history
  • Loading branch information
akshita31 committed Apr 11, 2019
1 parent ea4c4da commit ac66351
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,15 @@ public static void UnresolvedDepdendencies(this IEventEmitter emitter, string pr
}

public static void ProjectInformation(this IEventEmitter emitter,
HashedString projectGuid,
IEnumerable<HashedString> targetFrameworks,
HashedString projectId,
IEnumerable<string> targetFrameworks,
IEnumerable<HashedString> references,
IEnumerable<HashedString> fileExtensions)
{
var projectConfiguration = new ProjectConfigurationMessage()
{
TargetFrameworks = targetFrameworks.Select(hashed => hashed.Value),
ProjectGuid = projectGuid.Value,
TargetFrameworks = targetFrameworks,
ProjectId = projectId.Value,
References = references.Select(hashed => hashed.Value),
FileExtensions = fileExtensions.Select(hashed => hashed.Value)
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace OmniSharp.Models.Events
{
public class ProjectConfigurationMessage
{
public string ProjectGuid { get; set; }
public string ProjectId { get; set; }
public IEnumerable<string> TargetFrameworks { get; set; }
public IEnumerable<string> References { get; set; }
public IEnumerable<string> FileExtensions { get; set; }
Expand Down
13 changes: 6 additions & 7 deletions src/OmniSharp.MSBuild/ProjectLoadListener.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ public void ProjectLoaded(ProjectLoadedEventArgs args)
{
try
{
var projectGuid = GetProjectId(args);
var hashedTargetFrameworks = GetHashedTargetFrameworks(args.ProjectInstance);
var projectId = GetProjectId(args);
var targetFrameworks = GetTargetFrameworks(args.ProjectInstance);

if (args.References == null)
{
Expand All @@ -45,7 +45,7 @@ public void ProjectLoaded(ProjectLoadedEventArgs args)
var hashedReferences = GetHashedReferences(args);
var hashedFileExtensions = GetUniqueHashedFileExtensions(args);

_eventEmitter.ProjectInformation(projectGuid, hashedTargetFrameworks, hashedReferences, hashedFileExtensions);
_eventEmitter.ProjectInformation(projectId, targetFrameworks, hashedReferences, hashedFileExtensions);
}
catch (Exception ex)
{
Expand Down Expand Up @@ -80,7 +80,7 @@ private static IEnumerable<HashedString> GetHashedReferences(ProjectLoadedEventA
}

// Internal for testing
internal static IEnumerable<HashedString> GetHashedTargetFrameworks(ProjectInstance projectInstance)
internal static IEnumerable<string> GetTargetFrameworks(ProjectInstance projectInstance)
{
var targetFrameworks = projectInstance.GetPropertyValue(TargetFrameworks);
if (string.IsNullOrEmpty(targetFrameworks))
Expand All @@ -96,11 +96,10 @@ internal static IEnumerable<HashedString> GetHashedTargetFrameworks(ProjectInsta
{
return targetFrameworks.Split(';')
.Where(tfm => !string.IsNullOrWhiteSpace(tfm))
.Select(tfm => tfm.ToLower())
.Select(_tfmAndFileHashingAlgorithm.HashInput);
.Select(tfm => tfm.ToLower());
}

return new List<HashedString>();
return new List<string>();
}
}
}
36 changes: 14 additions & 22 deletions tests/OmniSharp.MSBuild.Tests/ProjectLoadListenerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -37,48 +37,45 @@ public void GetTargetFramework_ReturnsTargetFramework()
// Arrange

const string targetFramework = "net461";
var expectedTFM = GetHashedTargetFramework(targetFramework);
var projectInstance = new ProjectInstance(ProjectRootElement.Create());
projectInstance.SetProperty(ProjectLoadListener.TargetFramework, targetFramework);

// Act
var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance);
var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance);

// Assert
Assert.Equal(expectedTFM, tfm.First().Value);
Assert.Equal(targetFramework, tfm.First());
}

[Fact]
public void GetTargetFramework_NoTFM_ReturnsTargetFrameworkVersion()
{
// Arrange
const string targetFramework = "v4.6.1";
var expectedTFM = GetHashedTargetFramework(targetFramework);
var projectInstance = new ProjectInstance(ProjectRootElement.Create());
projectInstance.SetProperty(ProjectLoadListener.TargetFrameworkVersion, targetFramework);

// Act
var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance);
var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance);

// Assert
Assert.Equal(expectedTFM, tfm.First().Value);
Assert.Equal(targetFramework, tfm.First());
}

[Fact]
public void GetTargetFramework_PrioritizesTargetFrameworkOverVersion()
{
// Arrange
const string targetFramework = "v4.6.1";
var expectedTFM = GetHashedTargetFramework(targetFramework);
var projectInstance = new ProjectInstance(ProjectRootElement.Create());
projectInstance.SetProperty(ProjectLoadListener.TargetFramework, targetFramework);
projectInstance.SetProperty(ProjectLoadListener.TargetFrameworkVersion, "Unexpected");

// Act
var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance);
var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance);

// Assert
Assert.Equal(expectedTFM, tfm.First().Value);
Assert.Equal(targetFramework, tfm.First());
}

[Fact]
Expand All @@ -88,7 +85,7 @@ public void GetTargetFramework_NoTFM_ReturnsEmpty()
var projectInstance = new ProjectInstance(ProjectRootElement.Create());

// Act
var tfm = ProjectLoadListener.GetHashedTargetFrameworks(projectInstance);
var tfm = ProjectLoadListener.GetTargetFrameworks(projectInstance);

// Assert
Assert.Empty(tfm);
Expand All @@ -98,7 +95,7 @@ public void GetTargetFramework_NoTFM_ReturnsEmpty()
public async Task The_target_framework_is_emitted()
{
// Arrange
var expectedTFM = GetHashedTargetFramework("netcoreapp2.1");
var expectedTFM = "netcoreapp2.1";
var messages = new List<ProjectConfigurationMessage>();
var emitter = new ProjectLoadTestEventEmitter(messages);

Expand Down Expand Up @@ -134,10 +131,10 @@ public async Task If_there_is_a_solution_file_the_project_guid_present_in_it_is_
{
var expectedGuid = "A4C2694D-AEB4-4CB1-8951-5290424EF883".ToLower();
Assert.Single(messages);
Assert.Equal(messages[0].ProjectGuid, expectedGuid);
Assert.Equal(messages[0].ProjectId, expectedGuid);
}
}

I
[Fact]
public async Task If_there_is_no_solution_file_the_hash_of_project_file_content_and_name_is_emitted()
{
Expand All @@ -157,10 +154,10 @@ public async Task If_there_is_no_solution_file_the_hash_of_project_file_content_
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].ProjectGuid, expectedGuid);
Assert.Equal(messages[0].ProjectId, expectedGuid);
}
}

I
[Fact]
public async Task Given_a_restored_project_the_references_are_emitted()
{
Expand Down Expand Up @@ -205,8 +202,8 @@ public async Task If_there_are_multiple_target_frameworks_they_are_emitted()
Assert.Single(messages);
var tfm = messages[0].TargetFrameworks.ToArray();
Assert.Equal(2, tfm.Count());
Assert.Equal(tfm[0], GetHashedTargetFramework("netstandard1.3"));
Assert.Equal(tfm[1], GetHashedTargetFramework("netstandard2.0"));
Assert.Equal("netstandard1.3", tfm[0]);
Assert.Equal("netstandard2.0",tfm[1]);
}
}

Expand All @@ -232,11 +229,6 @@ public async Task The_hashed_references_of_the_source_files_are_emitted()
}
}

private string GetHashedTargetFramework(string targetFramework)
{
return _tfmAndFileHashingAlgorithm.HashInput(targetFramework).Value;
}

private string GetHashedFileExtension(string fileExtension)
{
return _tfmAndFileHashingAlgorithm.HashInput(fileExtension).Value;
Expand Down

0 comments on commit ac66351

Please sign in to comment.