public void SarifFixer_ShouldChange_EscapeQuotes() { // Arrange var logger = new TestLogger(); var testDir = TestUtils.CreateTestSpecificFolder(TestContext); var testSarifString = @"{ ""version"": ""0.1"", ""toolInfo"": { ""toolName"": ""Microsoft (R) Visual C# Compiler"", ""productVersion"": ""1.0.0"", ""fileVersion"": ""1.0.0"" }, ""issues"": [ { ""ruleId"": ""DD001"", ""shortMessage"": ""Test shortMessage. It features ""quoted text""."", ""properties"": { ""severity"": ""Info"", ""helpLink"": ""https://github.com/SonarSource/sonar-msbuild-runner"", } } ] }"; var testSarifPath = Path.Combine(testDir, "testSarif.json"); File.WriteAllText(testSarifPath, testSarifString); var originalWriteTime = new FileInfo(testSarifPath).LastWriteTime; // Act var returnedSarifPath = new RoslynV1SarifFixer(logger).LoadAndFixFile(testSarifPath, RoslynV1SarifFixer.CSharpLanguage); // Assert // fixable -> no change to file, file path in return value, file contents as expected AssertFileUnchanged(testSarifPath, originalWriteTime); returnedSarifPath.Should().NotBeNull(); var returnedSarifString = File.ReadAllText(returnedSarifPath); returnedSarifString.Should().Be(@"{ ""version"": ""0.1"", ""toolInfo"": { ""toolName"": ""Microsoft (R) Visual C# Compiler"", ""productVersion"": ""1.0.0"", ""fileVersion"": ""1.0.0"" }, ""issues"": [ { ""ruleId"": ""DD001"", ""shortMessage"": ""Test shortMessage. It features \""quoted text\""."", ""properties"": { ""severity"": ""Info"", ""helpLink"": ""https://github.com/SonarSource/sonar-msbuild-runner"", } } ] }"); }
public void SarifFixer_ShouldNotChange_Unfixable() { // Arrange var logger = new TestLogger(); var testDir = TestUtils.CreateTestSpecificFolder(TestContext); var testSarifString = @"{ ""version"": ""0.1"", ""toolInfo"": { ""toolName"": ""Microsoft (R) Visual C# Compiler"", ""productVersion"": ""1.0.0"", ""fileVersion"": ""1.0.0"" }, ""issues"": [ { }}}}}}}}}}}}}}}}}}}}}}}}} ""ruleId"": ""DD001"", ""locations"": [ { ""analysisTarget"": [ { ""uri"": ""C:\\agent\\_work\\2\\s\\MyTestProj\\Program.cs"", } ] } ], ""shortMessage"": ""Test shortMessage. It features \""quoted text\""."", ""properties"": { ""severity"": ""Info"", ""helpLink"": ""https://github.com/SonarSource/sonar-msbuild-runner"", } } ] }"; var testSarifPath = Path.Combine(testDir, "testSarif.json"); File.WriteAllText(testSarifPath, testSarifString); var originalWriteTime = new FileInfo(testSarifPath).LastWriteTime; // Act var returnedSarifPath = new RoslynV1SarifFixer(logger).LoadAndFixFile(testSarifPath, RoslynV1SarifFixer.CSharpLanguage); // Assert // unfixable -> no change to file, null return AssertFileUnchanged(testSarifPath, originalWriteTime); returnedSarifPath.Should().BeNull(); }
public void SarifFixer_ShouldNotFixInvalid() { // Arrange var logger = new TestLogger(); var testDir = TestUtils.CreateTestSpecificFolder(TestContext); var testSarifString = @"{ ""version"": ""0.1"", ""toolInfo"": { ""toolName"": ""Microsoft (R) Visual C# Compiler"", ""productVersion"": ""1.0.0"", ""fileVersion"": ""1.0.0"" }, ""issues"": [ { ""ruleId"": ""DD001"", ""locations"": [ { ""analysisTarget"": [ { ""uri"": ""C:\agent\_work\2\s\MyTestProj\Program.cs"", } ] } ], } ] }"; var testSarifPath = Path.Combine(testDir, "testSarif.json"); File.WriteAllText(testSarifPath, testSarifString); var originalWriteTime = new FileInfo(testSarifPath).LastWriteTime; // Act var returnedSarifPath = new RoslynV1SarifFixer(logger).LoadAndFixFile(testSarifPath, RoslynV1SarifFixer.VBNetLanguage); returnedSarifPath.Should().BeNull(); }
public void SarifFixer_VBNet() { // Arrange var logger = new TestLogger(); var testDir = TestUtils.CreateTestSpecificFolder(TestContext); var testSarifString = @"{ ""version"": ""0.1"", ""toolInfo"": { ""toolName"": ""Microsoft (R) Visual Basic Compiler"", ""productVersion"": ""1.0.0"", ""fileVersion"": ""1.0.0"" }, ""issues"": [ { ""ruleId"": ""DD001"", ""locations"": [ { ""analysisTarget"": [ { ""uri"": ""C:\agent\_work\2\s\MyTestProj\Program.cs"", } ] } ], } ] }"; var testSarifPath = Path.Combine(testDir, "testSarif.json"); File.WriteAllText(testSarifPath, testSarifString); var originalWriteTime = new FileInfo(testSarifPath).LastWriteTime; // Act var returnedSarifPath = new RoslynV1SarifFixer(logger).LoadAndFixFile(testSarifPath, RoslynV1SarifFixer.VBNetLanguage); // Assert // fixable -> no change to file, file path in return value, file contents as expected AssertFileUnchanged(testSarifPath, originalWriteTime); returnedSarifPath.Should().NotBeNull(); var returnedSarifString = File.ReadAllText(returnedSarifPath); returnedSarifString.Should().Be(@"{ ""version"": ""0.1"", ""toolInfo"": { ""toolName"": ""Microsoft (R) Visual Basic Compiler"", ""productVersion"": ""1.0.0"", ""fileVersion"": ""1.0.0"" }, ""issues"": [ { ""ruleId"": ""DD001"", ""locations"": [ { ""analysisTarget"": [ { ""uri"": ""C:\\agent\\_work\\2\\s\\MyTestProj\\Program.cs"", } ] } ], } ] }"); }