BadScript 2
Loading...
Searching...
No Matches
TextWrapperTests.cs
Go to the documentation of this file.
1using System;
2using System.Linq;
3using Xunit;
4using FluentAssertions;
5using CSharpx;
7
9{
10 public class TextWrapperTests
11 {
12 private string NormalizeLineBreaks(string str)
13 {
14 return str.Replace("\r", "");
15 }
16
17 private void EnsureEquivalent(string a, string b)
18 {
19 //workaround build system line-end inconsistencies
21 }
22
23
24 [Fact]
26 {
27 var input =
28 "here is some text with some extra spacing";
29 var expected = @"here is some text
30with some extra
31spacing";
32 var wrapper = new TextWrapper(input);
33 EnsureEquivalent(wrapper.WordWrap(20).ToText(), expected);
34 }
35
36
37 [Fact]
39 {
40 var input =
41 @"line1
42line2";
43 var expected = @" line1
44 line2";
45 var wrapper = new TextWrapper(input);
46 EnsureEquivalent(wrapper.Indent(2).ToText(), expected);
47 }
48
49 [Fact]
50 public void LongWordsAreBroken()
51 {
52 var input =
53 "here is some text that contains a veryLongWordThatWontFitOnASingleLine";
54 var expected = @"here is some text
55that contains a
56veryLongWordThatWont
57FitOnASingleLine";
58 var wrapper = new TextWrapper(input);
59 EnsureEquivalent(wrapper.WordWrap(20).ToText(), expected);
60 }
61
62 [Fact]
64 {
65 var input = @"test";
66 var expected = string.Join(Environment.NewLine, input.Select(c => c.ToString()));
67 var wrapper = new TextWrapper(input);
68 EnsureEquivalent(wrapper.WordWrap(-1).ToText(), expected);
69 }
70
71 [Fact]
73 {
74 var input =
75 @"here is some text that needs wrapping";
76 var expected = @"here is
77some text
78that needs
79wrapping";
80 var wrapper = new TextWrapper(input);
81 EnsureEquivalent(wrapper.WordWrap(10).ToText(), expected);
82 }
83
84 [Fact]
86 {
87 var input = @"test
88 ind";
89
90 var expected = @"t
91e
92s
93t
94i
95n
96d";
97 var wrapper = new TextWrapper(input);
98 EnsureEquivalent(wrapper.WordWrap(-1).ToText(), expected);
99 }
100
101 [Fact]
103 {
104 var input =
105 "here is some text with some extra spacing";
106 var expected = @"here is some
107text with some extra
108spacing";
109 var wrapper = new TextWrapper(input);
110 EnsureEquivalent(wrapper.WordWrap(20).ToText(), expected);
111 }
112
113 [Fact]
115 {
116 var input = @"test
117 indented";
118 var expected = @"test
119 in
120 de
121 nt
122 ed";
123 var wrapper = new TextWrapper(input);
124 EnsureEquivalent(wrapper.WordWrap(6).ToText(), expected);
125 }
126
127 [Fact]
129 {
130 var input =
131 "here is some text that contains \n a veryLongWordThatWontFitOnASingleLine";
132 var expected = @"here is some text
133that contains
134 a
135 veryLongWordThatWo
136 ntFitOnASingleLine";
137 var wrapper = new TextWrapper(input);
138 EnsureEquivalent(wrapper.WordWrap(20).ToText(), expected);
139 }
140
141 [Fact]
143 {
144 var input =
145 @"here hippopotamus is some text that needs wrapping";
146 var expected = @"here
147hippopotamus is
148some text that
149needs wrapping";
150 var wrapper = new TextWrapper(input);
151 EnsureEquivalent(wrapper.WordWrap(15).ToText(), expected);
152 }
153
154
155 [Fact]
157 {
158 var input =
159 "here is some\n text with some extra spacing";
160 var expected = @"here is some
161 text
162 with some extra
163 spacing";
164 var wrapper = new TextWrapper(input);
165 EnsureEquivalent(wrapper.WordWrap(20).ToText(), expected);
166 }
167
168 [Fact]
170 {
171 var input =
172 "here is some text\nthat needs\r\nwrapping";
173 var expected = @"here is some text
174that needs
175wrapping";
176 var wrapper = new TextWrapper(input);
177 EnsureEquivalent(wrapper.WordWrap(20).ToText(), expected);
178 }
179
180
181 [Fact]
183 {
184 var input =
185 "here is some text\n that needs wrapping where we want the wrapped part to preserve indentation\nand this part to not be indented";
186 var expected = @"here is some text
187 that needs
188 wrapping where we
189 want the wrapped
190 part to preserve
191 indentation
192and this part to not
193be indented";
194 var wrapper = new TextWrapper(input);
195 EnsureEquivalent(wrapper.WordWrap(20).ToText(), expected);
196 }
197 }
198}
A utility class to word-wrap and indent blocks of text.