public void Output_Should_Honor_Current_State_When_Switching_Between_States() { // Enable color output ConsoleExtensions.Enable(); ColorOutputEnabledTest(); // Disable color output ConsoleExtensions.Disable(); ColorOutputDisabledTest(); // Re-enable color output ConsoleExtensions.Enable(); ColorOutputEnabledTest(); }
public void Output_Should_Honor_Current_State_When_Switching_Between_States() { // Enable color output ColorOutputEnabledTest(); // Disable color output ///////////////// // ARRANGE ///////// ConsoleExtensions.Disable(); ///////////////// // ACT ///////// var outputAnsiColorString1 = _input.Pastel(Color.FromArgb(1, 1, 1)); var outputAnsiColorString2 = _input.Pastel("#010101"); var outputAnsiColorString3 = _input.PastelBg(Color.FromArgb(1, 1, 1)); var outputAnsiColorString4 = _input.PastelBg("#010101"); ///////////////// // ASSERT ///////// Assert.Equal(_input, outputAnsiColorString1); Assert.Equal(_input, outputAnsiColorString2); Assert.Equal(_input, outputAnsiColorString3); Assert.Equal(_input, outputAnsiColorString4); // Re-enable color output ColorOutputEnabledTest(); }
public static int Main(string[] c_args) { if (Environment.GetEnvironmentVariable("WT_SESSION") == null && RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Environment.SetEnvironmentVariable($"RUNE_EMOJI_USE", "0"); Environment.SetEnvironmentVariable($"RUNE_COLOR_USE", "0"); Environment.SetEnvironmentVariable($"RUNE_NIER_USE", "0"); Environment.SetEnvironmentVariable($"NO_COLOR", "true"); ForegroundColor = ConsoleColor.Gray; WriteLine($"no windows-terminal: coloring, emoji and nier has disabled."); ForegroundColor = ConsoleColor.White; } AppDomain.CurrentDomain.ProcessExit += (sender, eventArgs) => { ConsoleExtensions.Disable(); }; Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); var raw = new FluentCommandLineParser <Args>(); raw.Setup(x => x.sourceFiles) .As('s', "source") .WithDescription("Source files.") .SetDefault(new List <string>()); raw.Setup(x => x.OutFile) .As('o', "out") .WithDescription("Out file."); raw.Setup(x => x.extension) .As('e', "ext") .WithDescription("Extension of file.") .SetDefault("dlx"); raw.Parse(c_args); var args = raw.Object; var ver = FileVersionInfo.GetVersionInfo(typeof(Host).Assembly.Location).ProductVersion; WriteLine($"Ancient assembler compiler version {ver}".Pastel(Color.Gray)); WriteLine($"Copyright (C) 2020 Yuuki Wesp.\n\n".Pastel(Color.Gray)); if (!args.sourceFiles.Any()) { Warn(Warning.NoSource, "No source files specified."); return(1); } if (string.IsNullOrEmpty(args.OutFile)) { Error(Warning.OutFileNotSpecified, "Outputs without source must have the --out option specified."); return(1); } if (!args.sourceFiles.Select(x => new FileInfo(x).Exists).All(x => x)) { Error(Warning.SourceFileNotFound, "One source file not found."); return(1); } var source = File.ReadAllText(args.sourceFiles.First()).Replace("\r", ""); try { var e = Evolve(source); var c = Compile(e, args); File.WriteAllBytes($"{args.OutFile}.{args.extension}", c.data); File.WriteAllBytes($"{args.OutFile}.pdb", c.map); return(0); } catch (AncientCompileException) { } catch (AncientEvolveException) { } catch (Exception e) { WriteLine(e); } return(1); }