/// <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>(args) .MapResult( (ConvertOptions convertOptions) => ConvertCommand.Run(convertOptions), (RewriteOptions rewriteOptions) => RewriteCommand.Run(rewriteOptions), (MergeOptions mergeOptions) => MergeCommand.Run(mergeOptions), errs => 1)); }
private static (string transformedContents, int returnCode) RunTransformationCore( string logFileContents, SarifVersion targetVersion, RewriteOptions options = null) { const string LogFilePath = @"c:\logs\mylog.sarif"; options ??= new RewriteOptions { Inline = true, SarifOutputVersion = targetVersion, InputFilePath = LogFilePath }; if (options.SarifOutputVersion == SarifVersion.Unknown) { options.SarifOutputVersion = targetVersion; } if (options.InputFilePath == null) { options.Inline = true; options.InputFilePath = LogFilePath; } var transformedContents = new StringBuilder(); transformedContents.Append(logFileContents); var mockFileSystem = new Mock <IFileSystem>(); // This only works because we're testing "Inline" // TODO: Verify a separate OutputFilePath works as expected mockFileSystem.Setup(x => x.FileReadAllText(options.InputFilePath)).Returns(transformedContents.ToString()); mockFileSystem.Setup(x => x.FileOpenRead(options.InputFilePath)).Returns(() => new MemoryStream(Encoding.UTF8.GetBytes(transformedContents.ToString()))); mockFileSystem.Setup(x => x.FileCreate(options.InputFilePath)).Returns(() => new MemoryStreamToStringBuilder(transformedContents)); mockFileSystem.Setup(x => x.FileWriteAllText(options.InputFilePath, It.IsAny <string>())).Callback <string, string>((path, contents) => { transformedContents.Clear(); transformedContents.Append(contents); }); var rewriteCommand = new RewriteCommand(mockFileSystem.Object); int returnCode = rewriteCommand.Run(options); return(transformedContents.ToString(), returnCode); }
/// <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)); }
/// <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)); }