@@ -255,26 +255,35 @@ private void AssertFileChange(
255
255
256
256
public class ScriptFileGetLinesTests
257
257
{
258
- private ScriptFile scriptFile ;
258
+ private const string TestString_NoTrailingNewline = "Line One\r \n Line Two\r \n Line Three\r \n Line Four\r \n Line Five" ;
259
+
260
+ private const string TestString_TrailingNewline = TestString_NoTrailingNewline + "\r \n " ;
261
+
262
+ private static readonly string [ ] s_newLines = new string [ ] { "\r \n " } ;
263
+
264
+ private static readonly string [ ] s_testStringLines_noTrailingNewline = TestString_NoTrailingNewline . Split ( s_newLines , StringSplitOptions . None ) ;
265
+
266
+ private static readonly string [ ] s_testStringLines_trailingNewline = TestString_TrailingNewline . Split ( s_newLines , StringSplitOptions . None ) ;
267
+
268
+ private ScriptFile _scriptFile_trailingNewline ;
269
+
270
+ private ScriptFile _scriptFile_noTrailingNewline ;
259
271
260
- private const string TestString = "Line One\r \n Line Two\r \n Line Three\r \n Line Four\r \n Line Five" ;
261
- private readonly string [ ] TestStringLines =
262
- TestString . Split (
263
- new string [ ] { "\r \n " } ,
264
- StringSplitOptions . None ) ;
265
272
266
273
public ScriptFileGetLinesTests ( )
267
274
{
268
- this . scriptFile =
269
- ScriptFileChangeTests . CreateScriptFile (
270
- "Line One\r \n Line Two\r \n Line Three\r \n Line Four\r \n Line Five\r \n " ) ;
275
+ _scriptFile_noTrailingNewline = ScriptFileChangeTests . CreateScriptFile (
276
+ TestString_NoTrailingNewline ) ;
277
+
278
+ _scriptFile_trailingNewline = ScriptFileChangeTests . CreateScriptFile (
279
+ TestString_TrailingNewline ) ;
271
280
}
272
281
273
282
[ Fact ]
274
283
public void CanGetWholeLine ( )
275
284
{
276
285
string [ ] lines =
277
- this . scriptFile . GetLinesInRange (
286
+ _scriptFile_noTrailingNewline . GetLinesInRange (
278
287
new BufferRange ( 5 , 1 , 5 , 10 ) ) ;
279
288
280
289
Assert . Equal ( 1 , lines . Length ) ;
@@ -285,17 +294,17 @@ public void CanGetWholeLine()
285
294
public void CanGetMultipleWholeLines ( )
286
295
{
287
296
string [ ] lines =
288
- this . scriptFile . GetLinesInRange (
297
+ _scriptFile_noTrailingNewline . GetLinesInRange (
289
298
new BufferRange ( 2 , 1 , 4 , 10 ) ) ;
290
299
291
- Assert . Equal ( TestStringLines . Skip ( 1 ) . Take ( 3 ) , lines ) ;
300
+ Assert . Equal ( s_testStringLines_noTrailingNewline . Skip ( 1 ) . Take ( 3 ) , lines ) ;
292
301
}
293
302
294
303
[ Fact ]
295
304
public void CanGetSubstringInSingleLine ( )
296
305
{
297
306
string [ ] lines =
298
- this . scriptFile . GetLinesInRange (
307
+ _scriptFile_noTrailingNewline . GetLinesInRange (
299
308
new BufferRange ( 4 , 3 , 4 , 8 ) ) ;
300
309
301
310
Assert . Equal ( 1 , lines . Length ) ;
@@ -306,7 +315,7 @@ public void CanGetSubstringInSingleLine()
306
315
public void CanGetEmptySubstringRange ( )
307
316
{
308
317
string [ ] lines =
309
- this . scriptFile . GetLinesInRange (
318
+ _scriptFile_noTrailingNewline . GetLinesInRange (
310
319
new BufferRange ( 4 , 3 , 4 , 3 ) ) ;
311
320
312
321
Assert . Equal ( 1 , lines . Length ) ;
@@ -324,7 +333,7 @@ public void CanGetSubstringInMultipleLines()
324
333
} ;
325
334
326
335
string [ ] lines =
327
- this . scriptFile . GetLinesInRange (
336
+ _scriptFile_noTrailingNewline . GetLinesInRange (
328
337
new BufferRange ( 2 , 6 , 4 , 9 ) ) ;
329
338
330
339
Assert . Equal ( expectedLines , lines ) ;
@@ -341,23 +350,29 @@ public void CanGetRangeAtLineBoundaries()
341
350
} ;
342
351
343
352
string [ ] lines =
344
- this . scriptFile . GetLinesInRange (
353
+ _scriptFile_noTrailingNewline . GetLinesInRange (
345
354
new BufferRange ( 2 , 9 , 4 , 1 ) ) ;
346
355
347
356
Assert . Equal ( expectedLines , lines ) ;
348
357
}
349
358
350
359
[ Fact ]
351
- public void CanSplitLines ( )
360
+ public void CanSplitLines_NoTrailingNewline ( )
361
+ {
362
+ Assert . Equal ( s_testStringLines_noTrailingNewline , _scriptFile_noTrailingNewline . FileLines ) ;
363
+ }
364
+
365
+ [ Fact ]
366
+ public void CanSplitLines_TrailingNewline ( )
352
367
{
353
- Assert . Equal ( TestStringLines , scriptFile . FileLines ) ;
368
+ Assert . Equal ( s_testStringLines_trailingNewline , _scriptFile_trailingNewline . FileLines ) ;
354
369
}
355
370
356
371
[ Fact ]
357
372
public void CanGetSameLinesWithUnixLineBreaks ( )
358
373
{
359
- var unixFile = ScriptFileChangeTests . CreateScriptFile ( TestString . Replace ( "\r \n " , "\n " ) ) ;
360
- Assert . Equal ( scriptFile . FileLines , unixFile . FileLines ) ;
374
+ var unixFile = ScriptFileChangeTests . CreateScriptFile ( TestString_NoTrailingNewline . Replace ( "\r \n " , "\n " ) ) ;
375
+ Assert . Equal ( _scriptFile_noTrailingNewline . FileLines , unixFile . FileLines ) ;
361
376
}
362
377
363
378
[ Fact ]
0 commit comments