private void RunSingleTest(MethodInfo methodInfo, string inputFile, string outputFile) { Console.SetIn(File.OpenText(inputFile)); var actualOutput = new StringWriter(); var expectedOutputLines = FileWithoutLock.ReadAllLines(outputFile).Select(l => l.Replace("\r\n", string.Empty)).ToArray(); Console.SetOut(actualOutput); methodInfo.Invoke(null, null); Console.SetOut(new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = true }); var actualOutputLines = new StringReader(actualOutput.ToString()).ReadAllLines() .Select(l => l.Replace("\r\n", string.Empty)).ToArray(); var success = CompareOutput(actualOutputLines, expectedOutputLines); var sucessLabel = success ? "OK" : "KO"; Console.WriteLineStyled($"[{Path.GetFileName(_sourceCodeFile)}] Running test : {Path.GetFileName(inputFile)} {sucessLabel}", _styleSheet); if (!success) { PrintDiff(expectedOutputLines, actualOutputLines); } }
/// <summary> /// Write out the current config for the application. /// </summary> /// <param name="PaneSize">Sizes object</param> /// <param name="Sender">Key sender</param> public static void WriteConfigInfo(PaneSizeValues PaneSize, KeySender Sender) { // Store a temp file. string TempFile = Path.GetTempFileName(); using (var ConsoleWriter = new StreamWriter(TempFile)) { // Set Console Output here. Console.Clear(); Console.SetOut(ConsoleWriter); // Title info here. Console.Clear(); Console.WriteLine("+---------------------------------------------+"); Console.WriteLine("| |"); Console.WriteLine("| OBS Switcher Version 1.4.3 |"); Console.WriteLine("|~Created And Maintained By Zack Walsh - 2021~|"); Console.WriteLine("| |"); Console.WriteLine("|---------------------------------------------|"); Console.WriteLine("| =Configuration Info For This Session= |"); Console.WriteLine("|---------------------------------------------|"); // Print out hotkey info. Console.WriteLine("| {0,0} {1,33}", "OBS HotKeys", "|"); int KeyCounter = 0; foreach (var HotKeyItem in HotKeys.HotKeysList) { // TESTING FORMAT // | \__ Full Output: CTL + ALT + SHIFT + A | // | \__ Pane 1 HotKey: CTL + ALT + SHIFT + B | // Store name and format key. string KeyName = "Pane " + KeyCounter + " HotKey"; string FormatString = "{0,0} {1,0} {2,0} {3,3}"; string ValueString = Sender.ModStringExpanded + " + " + HotKeyItem; if (KeyCounter == 0) { KeyName = "Full Output"; FormatString = "{0,0} {1,0} {2,23} {3,3}"; } // Write out the formatted string. Console.WriteLine(FormatString, "|", $"\\__ {KeyName}: ", ValueString, "|"); // Tick key count. KeyCounter++; } // Print splitter. Console.WriteLine("|---------------------------------------------|"); // Print out pane size info. Console.WriteLine("| {0,0} {1,34}", "Pane Sizes", "|"); int PaneCounter = 0; foreach (var PaneSizeItem in PaneSize.PaneSizesList) { // TESTING FORMAT // | \__ Pane 1 Size: Left Edge - 1150px | // | \__ Pane 2 Size: 1151px - 2230px | // Store pane name and info. string PaneName = "Pane " + (PaneCounter + 1) + " Size"; string FormatString = "{0,0} {1,0} {2,17} {3,9}"; // String format and write out. string FormatPxEdge = PaneSizeItem.Item1 + "px"; // Check for 0px callout. if (FormatPxEdge == "0px") { FormatPxEdge = "Left Edge"; } if (PaneCounter == 0 || FormatPxEdge.Contains("Edge")) { FormatString = "{0,0} {1,5} {2,20} {3,6}"; } // Store value here. string ValueString = $"{FormatPxEdge} - {PaneSizeItem.Item2}px"; // Write out the line here. Console.WriteLine(FormatString, "|", $"\\__ {PaneName}: ", ValueString, "|"); // Tick Pane count. PaneCounter++; } // Command info here. Console.WriteLine("|---------------------------------------------|"); Console.WriteLine("| =OBS Pane Configuration Setup Helpers= |"); Console.WriteLine("|---------------------------------------------|"); Console.WriteLine("| Press 'P' and a number to toggle a pane's |"); Console.WriteLine("| outline. Press 'P' twice to see all panes. |"); Console.WriteLine("| Or press 'P' and a number for a set pane. |"); Console.WriteLine("| |"); Console.WriteLine("| These rectangles help visualize the |"); Console.WriteLine("| sizes of panes OBS needs to be setup to |"); Console.WriteLine("| switch between based on your cursor spot. |"); Console.WriteLine("| |"); Console.WriteLine("| Other Pane Commands |"); Console.WriteLine("| - Press 'P' then 'C' to clear outlines |"); Console.WriteLine("| - Press 'R' twice to reset pane sizes |"); Console.WriteLine("|---------------------------------------------|"); Console.WriteLine("| =Main Control Information= |"); Console.WriteLine("|---------------------------------------------|"); Console.WriteLine("| Press ESCAPE at any time to pause |"); Console.WriteLine("| Press ENTER to continue |"); Console.WriteLine("+---------------------------------------------+"); }; // Write temp file to console here. var StandardConsoleOutput = new StreamWriter(Console.OpenStandardOutput()); StandardConsoleOutput.AutoFlush = true; Console.SetOut(StandardConsoleOutput); // Store temp file contents and split into list. string[] AllFileLines = File.ReadAllLines(TempFile); int EnterCount = (Console.WindowHeight - AllFileLines.Length) / 2; for (int Counter = 0; Counter < EnterCount - 5; Counter++) { Console.WriteLine(); } foreach (var LineItem in AllFileLines) { CenterConsolePrint(LineItem); } // Delete Temp File. try { File.Delete(TempFile); } catch { } }