public void SetUp() { _simpleValue = new FormattingIntermediate(SimpleText); _multiLineValue = new FormattingIntermediate("Simple text string" + Environment.NewLine + "for the purposes of measuring things."); _renderable = new RecordingConsoleAdapter(); RenderText(); _renderableValue = new FormattingIntermediate(_renderable); _renderableTable = new RecordingConsoleAdapter(); RenderTable(); _renderableTableValue = new FormattingIntermediate(_renderableTable); }
public void RenderableElementsAreStacked() { var recorder = new RecordingConsoleAdapter(); recorder.WriteLine("Some simple text"); recorder.FormatTable(Enumerable.Range(0,5).Select(i => new {Index = i})); var output = PropertyStackFormatter.Format(new ColumnFormat("Format heading", alignment: ColumnAlign.Right), recorder, ColumnWidth); var text = RulerFormatter.MakeRuler(ColumnWidth) + Environment.NewLine + string.Join(Environment.NewLine, output) + End; Console.WriteLine(text); Approvals.Verify(text); }
public void RenderCommandReplaysRenderableData() { var renderer = new RecordingConsoleAdapter(); renderer.Write("Rendering test"); renderer.WriteLine(); renderer.WriteLine(RulerFormatter.MakeRuler(20)); renderer.Wrap("XXXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX"); var command = new RenderCommand(renderer); _buffer.Write("==="); command.Replay(_buffer); _buffer.Write("YYY"); Approvals.Verify(_buffer.ToLines().JoinWith(Environment.NewLine)); }
private static IConsoleRenderer FormatFullCommandDescription(BaseCommandConfig command, string prefixText = null, IOptionNameHelpAdorner adorner = null, bool displayCommandName = true) { var formatter = new RecordingConsoleAdapter(); formatter.WrapLine(((IContext)command).Description ?? string.Empty); var positionalsPresent = command.Positionals.Any(); var optionsPresent = command.Options.Any(); if (positionalsPresent || optionsPresent) { formatter.WriteLine(); var paramList = !positionalsPresent ? String.Empty : " " + command.Positionals.Select(FormatParameterListEntry) .Aggregate((t, i) => t + " " + i); var options = !optionsPresent ? String.Empty : " [options]"; formatter.WrapLine(string.Format("{0}{1}{2}{3}", prefixText ?? String.Empty, displayCommandName ? command.Name : null, paramList, options)); } if (positionalsPresent) { formatter.WriteLine(); formatter.WriteLine("Parameters:"); formatter.WriteLine(); var positionals = command.Positionals .Select(p => new {p.ParameterName, Description = FormatPositionalDescription(p)}); formatter.FormatTable(positionals, FormattingOptions, ColumnSeperator); } if (optionsPresent) { formatter.WriteLine(); formatter.WriteLine("Options:"); formatter.WriteLine(); var options = command.Options .Select(o => new { OptionName = GetOptionNameAndAliases(adorner, o), o.Description }); formatter.FormatTable(options, FormattingOptions, ColumnSeperator); } return formatter; }
public void RenderableColumnValuesAreNotConvertedToText() { var sizer = new ColumnSizer(typeof(string)); sizer.ColumnValue("XXXX XXXX"); //add a renderable value var renderable = new RecordingConsoleAdapter(); renderable.FormatTable(Enumerable.Range(0, 3).Select(i => new {String = "blah blah blah blah", Number = i})); sizer.ColumnValue(renderable); Assert.That(sizer.GetSizeValue(1).RenderableValue, Is.Not.Null); }
private static FormattingIntermediate MakeRenderer(string text, int rows) { var recorder = new RecordingConsoleAdapter(); recorder.WriteLine(text); recorder.FormatTable(Enumerable.Range(0, rows).Select(i => new {Index = i})); return new FormattingIntermediate(recorder); }
private static RecordingConsoleAdapter MakeRecording() { var recorder = new RecordingConsoleAdapter(); recorder.Write("Write."); recorder.WriteLine("WriteLine."); recorder.Wrap("Some wrapped text "); recorder.Wrap("added in chunks, followed by "); recorder.WrapLine("a final wrap line."); var data = Enumerable.Range(1, 10) .Select(i => new { Number = i, String = string.Join(" ", Enumerable.Repeat("blah", i)) }); recorder.FormatTable(data); recorder.Write("<--- END"); return recorder; }
public void SetUp() { _adapter = new RecordingConsoleAdapter(); }