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();
 }