/// <summary>The entry point for the SARIF multi utility.</summary> /// <param name="args">Arguments passed in from the tool's command line.</param> /// <returns>0 on success; nonzero on failure.</returns> public static int Main(string[] args) { return(Parser.Default.ParseArguments < ConvertOptions, RewriteOptions, MergeOptions, RebaseUriOptions, AbsoluteUriOptions, BaselineOptions>(args) .MapResult( (ConvertOptions convertOptions) => ConvertCommand.Run(convertOptions), (RewriteOptions rewriteOptions) => RewriteCommand.Run(rewriteOptions), (MergeOptions mergeOptions) => MergeCommand.Run(mergeOptions), (RebaseUriOptions rebaseOptions) => RebaseUriCommand.Run(rebaseOptions), (AbsoluteUriOptions absoluteUriOptions) => AbsoluteUriCommand.Run(absoluteUriOptions), (BaselineOptions baselineOptions) => BaselineCommand.Run(baselineOptions), errs => 1)); }
private string RunRebaseUriCommand(string testFilePath, RebaseUriOptions options) { string inputSarifLog = Extractor.GetResourceText($"RebaseUriCommand.{testFilePath}"); string logFilePath = @"c:\logs\mylog.sarif"; StringBuilder transformedContents = new StringBuilder(); options.TargetFileSpecifiers = new string[] { logFilePath }; Mock <IFileSystem> mockFileSystem = ArrangeMockFileSystem(inputSarifLog, logFilePath, transformedContents); var rebaseUriCommand = new RebaseUriCommand(mockFileSystem.Object); int returnCode = rebaseUriCommand.Run(options); string actualOutput = transformedContents.ToString(); returnCode.Should().Be(0); return(actualOutput); }
/// <summary>The entry point for the SARIF multi utility.</summary> /// <param name="args">Arguments passed in from the tool's command line.</param> /// <returns>0 on success; nonzero on failure.</returns> public static int Main(string[] args) { return(Parser.Default.ParseArguments < ValidateOptions, ConvertOptions, RewriteOptions, TransformOptions, MergeOptions, RebaseUriOptions, AbsoluteUriOptions, ResultMatchingOptions>(args) .MapResult( (ValidateOptions validateOptions) => new ValidateCommand(new FileSystem()).Run(validateOptions), (ConvertOptions convertOptions) => ConvertCommand.Run(convertOptions), (RewriteOptions rewriteOptions) => RewriteCommand.Run(rewriteOptions), (TransformOptions transformOptions) => TransformCommand.Run(transformOptions), (MergeOptions mergeOptions) => MergeCommand.Run(mergeOptions), (RebaseUriOptions rebaseOptions) => RebaseUriCommand.Run(rebaseOptions), (AbsoluteUriOptions absoluteUriOptions) => AbsoluteUriCommand.Run(absoluteUriOptions), (ResultMatchingOptions baselineOptions) => ResultMatchingCommand.Run(baselineOptions), errs => 1)); }
public void RebaseUriCommand_InjectsRegions() { string productDirectory = FileDiffingFunctionalTests.GetProductDirectory(); string analysisFile = Path.Combine(productDirectory, @"ReleaseHistory.md"); File.Exists(analysisFile).Should().BeTrue(); var sarifLog = new SarifLog { Runs = new[] { new Run { Results = new[] { new Result { Locations = new [] { new Location { PhysicalLocation = new PhysicalLocation { Region = new Region { StartLine = 7 }, ArtifactLocation = new ArtifactLocation { Uri = new Uri(analysisFile) } } } } } } } } }; string inputSarifLog = JsonConvert.SerializeObject(sarifLog); string logFilePath = @"c:\logs\mylog.sarif"; StringBuilder transformedContents = new StringBuilder(); RebaseUriOptions options = CreateDefaultOptions(); options.TargetFileSpecifiers = new string[] { logFilePath }; options.DataToInsert = new[] { OptionallyEmittedData.RegionSnippets | OptionallyEmittedData.ContextRegionSnippets }; Mock <IFileSystem> mockFileSystem = ArrangeMockFileSystem(inputSarifLog, logFilePath, transformedContents); // Test snippet injection. var rebaseUriCommand = new RebaseUriCommand(mockFileSystem.Object); int returnCode = rebaseUriCommand.Run(options); returnCode.Should().Be(0); SarifLog actualLog = JsonConvert.DeserializeObject <SarifLog>(transformedContents.ToString()); actualLog.Runs[0].Results[0].Locations[0].PhysicalLocation.Region.Snippet.Should().NotBeNull(); actualLog.Runs[0].Results[0].Locations[0].PhysicalLocation.ContextRegion.Snippet.Should().NotBeNull(); // Now test that this data is removed. inputSarifLog = JsonConvert.SerializeObject(actualLog); transformedContents.Length = 0; mockFileSystem = ArrangeMockFileSystem(inputSarifLog, logFilePath, transformedContents); rebaseUriCommand = new RebaseUriCommand(mockFileSystem.Object); options.DataToRemove = options.DataToInsert; options.DataToInsert = null; returnCode = rebaseUriCommand.Run(options); returnCode.Should().Be(0); actualLog = JsonConvert.DeserializeObject <SarifLog>(transformedContents.ToString()); actualLog.Runs[0].Results[0].Locations[0].PhysicalLocation.Region.Snippet.Should().BeNull(); actualLog.Runs[0].Results[0].Locations[0].PhysicalLocation.ContextRegion.Snippet.Should().BeNull(); }