public void TestColourClearing() { const OmniColours colour = OmniColours.BrightCyan; var initialColour = TestWriter.GetDecoration(); TestWriter.SetDecoration(new OmniDecoration(colour)); TestWriter.Write("Test01"); AssertLastColour(colour); TestWriter.Write("Test02"); AssertLastColour(colour); TestWriter.ClearDecoration(); AssertLastColour(initialColour); TestWriter.Write(colour, "Test03"); AssertLastColour(initialColour); TestWriter.WriteLine("Test04"); AssertLastColour(initialColour); var message = new ColourMessage(); message.SetDecoration(new OmniDecoration(colour)); message.AppendLine("Test05"); TestWriter.Write(message); AssertEqual(initialColour, TestColours.Last()); }
private static string GetConsoleColourName(OmniColours colour) { string parsed; return(string.IsNullOrEmpty(parsed = GetDescription(colour)) ? Win32Colours.DefaultColour : parsed); }
private static string GetDescription(OmniColours colour) { var enumType = colour.GetType(); var enumInfo = enumType.GetField(colour.ToString()); var descriptionAttribute = enumInfo.GetCustomAttributes(typeof(DescriptionAttribute), true) .OfType <DescriptionAttribute>() .FirstOrDefault(); return(descriptionAttribute != null ? descriptionAttribute.Description : string.Empty); }
public void TestColourWrite() { const string colourText = "Hello, world."; const string blankText = "Goodbye, world."; const OmniColours colour = OmniColours.Blue; var decoration = new OmniDecoration(colour); var writer = TestWriter; var message = OmniFactory.BuildMessage(); Assert.IsNotNull(message.AppendLine(decoration, colourText)); Assert.IsNotNull(message.AppendLine(blankText)); Assert.IsNotNull(writer.Write(message)); Assert.AreEqual(TestContents.Count, 2); Assert.AreEqual(TestColours.First(), colour); }
protected ConsoleColor ToConsoleColour(OmniColours colour) { // TODO: Improve this. return((ConsoleColor)Enum.Parse(typeof(ConsoleColor), GetConsoleColourName(colour))); }
protected override void SetColour(OmniColours colour) { Console.ForegroundColor = ToConsoleColour(colour); }
/// <summary> /// Writes a single block of text to the command line. Uses the colour provided. /// </summary> /// <param name="colour">Colour to decorate with.</param> /// <param name="value">The block of text to be written.</param> public static IColourWriter Write(OmniColours colour, string value) { return(Writer.Write(colour, value)); }
protected IOmniDecoration ToDecoration(OmniColours colour) { return(new OmniDecoration(colour)); }
public OmniDecoration(OmniColours colour) { _colour = colour; }
protected void WriteColour(StreamWriter writer, OmniColours colour) { WriteByteSequence(writer, AnsiColours.InitControlSequence); WriteString(writer, GetColourEncoding(colour)); }
protected abstract void SetColour(OmniColours colour);
private static IColourMessage ToMessage(OmniColours colour, string value) { return(new ColourMessage().Append(ToDecoration(colour), value)); }
public IColourWriter WriteLine(OmniColours colour, string line) { return(Write(colour, string.Format("{0}{1}", line, SysEnv.NewLine))); }
protected void AssertLastColour(OmniColours colour) { Assert.AreEqual(colour, TestColours.Last()); }
public IColourMessage AppendFormat(OmniColours colour, string format, params object[] arguments) { return(AppendFormat(ToDecoration(colour), format, arguments)); }
public IColourMessage AppendLine(OmniColours colour, string value) { return(AppendLine(ToDecoration(colour), value)); }
public IColourWriter Write(OmniColours colour, string value) { Write(ToMessage(colour, value)); return(this); }
/// <summary> /// Writes a formatted block of text to the command line. Uses the colour provided. /// </summary> /// <param name="colour">Colour to decorate with.</param> /// <param name="format">A format string.</param> /// <param name="arguments">Parameters to be provided to the format string.</param> public static IColourWriter WriteFormat(OmniColours colour, string format, params object[] arguments) { return(Writer.WriteFormat(colour, format, arguments)); }
protected override void SetColour(OmniColours colour) { using (var stdout = Console.OpenStandardOutput()) using (var writer = new StreamWriter(stdout)) WriteColour(writer, colour); }
/// <summary> /// Writes a single line to the command line. Uses the colour provided. /// </summary> /// <param name="colour">Colour to decorate with.</param> /// <param name="line">Line to be written.</param> public static IColourWriter WriteLine(OmniColours colour, string line) { return(Writer.WriteLine(colour, line)); }
protected string GetColourEncoding(OmniColours colour) { const string format = "1;{0}m"; return(string.Format(format, (int)colour)); }
/// <summary> /// Instantiates a new instance of an IOmniDecoration. /// </summary> /// <param name="colour">The colour of the decoration.</param> public static IOmniDecoration Decoration(OmniColours colour) { return(new OmniDecoration(colour)); }
protected override void SetColour(OmniColours colour) { ColourList.Add(colour); }
internal void AssertEqual(IOmniDecoration a, OmniColours b) { AssertEqual(a, new OmniDecoration(b)); }