public void CommandLineInvalidArgs(params string[] args) { AvroGenToolResult result = AvroGenHelper.RunAvroGenTool(args); Assert.That(result.ExitCode, Is.EqualTo(1)); Assert.That(result.StdOut, Is.Not.Empty); Assert.That(result.StdErr, Is.Not.Empty); }
public void CommandLineNoArgs() { AvroGenToolResult result = AvroGenHelper.RunAvroGenTool(Array.Empty <string>()); Assert.That(result.ExitCode, Is.EqualTo(1)); Assert.That(result.StdOut, Is.Not.Empty); Assert.That(result.StdErr, Is.Empty); }
public void CommandLineVersion(params string[] args) { AvroGenToolResult result = AvroGenHelper.RunAvroGenTool(args); Assert.That(result.ExitCode, Is.EqualTo(0)); Assert.That(result.StdOut, Is.Not.Empty); Assert.That(result.StdErr, Is.Empty); // Check if returned version is SemVer 2.0 compliant Assert.That(result.StdOut[0], Does.Match(Utils.VersionTests.SemVerRegex)); // Returned version must be the same as the avrogen tool assembly's version Assert.That(result.StdOut[0], Is.EqualTo(typeof(AvroGenTool).Assembly.GetCustomAttribute <AssemblyInformationalVersionAttribute>().InformationalVersion)); // Returned version must be the same as the avro library assembly's version Assert.That(result.StdOut[0], Is.EqualTo(typeof(Schema).Assembly.GetCustomAttribute <AssemblyInformationalVersionAttribute>().InformationalVersion)); }
public static AvroGenToolResult RunAvroGenTool(params string[] args) { // Save stdout and stderr TextWriter conOut = Console.Out; TextWriter conErr = Console.Error; try { AvroGenToolResult result = new AvroGenToolResult(); StringBuilder strBuilderOut = new StringBuilder(); StringBuilder strBuilderErr = new StringBuilder(); using (StringWriter writerOut = new StringWriter(strBuilderOut)) using (StringWriter writerErr = new StringWriter(strBuilderErr)) { writerOut.NewLine = "\n"; writerErr.NewLine = "\n"; // Overwrite stdout and stderr to be able to capture console output Console.SetOut(writerOut); Console.SetError(writerErr); result.ExitCode = AvroGenTool.Main(args.ToArray()); writerOut.Flush(); writerErr.Flush(); result.StdOut = strBuilderOut.Length == 0 ? Array.Empty <string>() : strBuilderOut.ToString().Split(writerOut.NewLine); result.StdErr = strBuilderErr.Length == 0 ? Array.Empty <string>() : strBuilderErr.ToString().Split(writerErr.NewLine); } return(result); } finally { // Restore console Console.SetOut(conOut); Console.SetError(conErr); } }