public void TestRemovingAllCharsLeavesEmptyBuilder()
        {
            var builder = new ColoredMultistringBuilder();

            builder.Append(anyArrayOfMultipleColoredStrings);

            builder.Remove(0, builder.Length);
            builder.ShouldBeEmpty();
        }
        public void TestRemovingZeroLengthPreservesBuilderContent()
        {
            var builder = new ColoredMultistringBuilder();

            builder.Append(anyArrayOfMultipleColoredStrings);

            builder.Remove(0, 0);

            builder.ShouldProduce(anyArrayOfMultipleColoredStrings);
        }
        public void TestRemovingAcrossPieces()
        {
            var builder = new ColoredMultistringBuilder();

            builder.Append(anyArrayOfMultipleColoredStrings);

            builder.Remove(1, builder.Length - 2);
            builder.ShouldProduce(
                anyArrayOfMultipleColoredStrings[0].Substring(0, 1),
                anyArrayOfMultipleColoredStrings.Last().Substring(anyArrayOfMultipleColoredStrings.Last().Length - 1));
        }
        public void TestRemovingMiddleOfPiecePreservesSurroundingText()
        {
            var builder = new ColoredMultistringBuilder();

            const string anyString = "SomeStringWithLength";
            var          piece     = new ColoredString(anyString, Any.Enum <ConsoleColor>());

            const int removeIndex  = 2;
            const int removeLength = 3;

            builder.Append(piece);
            builder.Remove(removeIndex, removeLength);

            builder.ShouldProduce(new ColoredString(
                                      anyString.Remove(removeIndex, removeLength),
                                      piece.ForegroundColor, piece.BackgroundColor));
        }