Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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);
            }
        }