1- using LogExpert ;
1+ using System . Text ;
22
3- using NUnit . Framework ;
3+ using ColumnizerLib ;
44
5- using System ;
6- using System . Text ;
5+ using NUnit . Framework ;
76
8- namespace ColumnizerLib . UnitTests ;
7+ namespace LogExpert . ColumnizerLib . Tests ;
98
109[ TestFixture ]
1110public class ColumnTests
1211{
12+ [ SetUp ]
13+ public void SetUp ( )
14+ {
15+ // Reset to default before each test
16+ Column . SetMaxDisplayLength ( 20_000 ) ;
17+ }
18+
19+ [ Test ]
20+ public void Column_DisplayMaxLength_DefaultIs20000 ( )
21+ {
22+ Assert . That ( Column . GetMaxDisplayLength ( ) , Is . EqualTo ( 20_000 ) ) ;
23+ }
24+
25+ [ Test ]
26+ public void Column_DisplayMaxLength_CanBeConfigured ( )
27+ {
28+ Column . SetMaxDisplayLength ( 50_000 ) ;
29+ Assert . That ( Column . GetMaxDisplayLength ( ) , Is . EqualTo ( 50_000 ) ) ;
30+
31+ // Reset for other tests
32+ Column . SetMaxDisplayLength ( 20_000 ) ;
33+ }
34+
1335 [ Test ]
14- public void Column_LineCutOff ( )
36+ public void Column_DisplayMaxLength_EnforcesMinimum ( )
1537 {
16- var expectedFullValue = new StringBuilder ( ) . Append ( '6' , 4675 ) . Append ( "1234" ) . ToString ( ) ;
17- var expectedDisplayValue = expectedFullValue [ ..4675 ] + "..." ; // Using substring shorthand
38+ _ = Assert . Throws < ArgumentOutOfRangeException > ( ( ) => Column . SetMaxDisplayLength ( 500 ) ) ;
39+ }
40+
41+ [ Test ]
42+ public void Column_TruncatesAtConfiguredDisplayLength ( )
43+ {
44+ Column . SetMaxDisplayLength ( 10_000 ) ;
45+
46+ // Create a line longer than the display max length
47+ var longValue = new StringBuilder ( ) . Append ( 'X' , 15_000 ) . ToString ( ) ;
1848
1949 Column column = new ( )
2050 {
21- FullValue = expectedFullValue
51+ FullValue = longValue
2252 } ;
2353
24- Assert . That ( column . DisplayValue , Is . EqualTo ( expectedDisplayValue ) ) ;
25- Assert . That ( column . FullValue , Is . EqualTo ( expectedFullValue ) ) ;
54+ // FullValue should contain the full line
55+ Assert . That ( column . FullValue , Is . EqualTo ( longValue ) ) ;
56+ Assert . That ( column . FullValue . Length , Is . EqualTo ( 15_000 ) ) ;
57+
58+ // DisplayValue should be truncated at 10,000 with "..." appended
59+ Assert . That ( column . DisplayValue . Length , Is . EqualTo ( 10_003 ) ) ; // 10000 + "..."
60+ Assert . That ( column . DisplayValue . EndsWith ( "..." , StringComparison . OrdinalIgnoreCase ) , Is . True ) ;
61+ Assert . That ( column . DisplayValue . StartsWith ( "XXX" , StringComparison . OrdinalIgnoreCase ) , Is . True ) ;
62+
63+ // Reset for other tests
64+ Column . SetMaxDisplayLength ( 20_000 ) ;
2665 }
2766
2867 [ Test ]
29- public void Column_NoLineCutOff ( )
68+ public void Column_NoTruncationWhenBelowLimit ( )
3069 {
31- var expected = new StringBuilder ( ) . Append ( '6' , 4675 ) . ToString ( ) ;
70+ Column . SetMaxDisplayLength ( 20_000 ) ;
71+
72+ var normalValue = new StringBuilder ( ) . Append ( 'Y' , 5_000 ) . ToString ( ) ;
3273 Column column = new ( )
3374 {
34- FullValue = expected
75+ FullValue = normalValue
3576 } ;
3677
3778 Assert . That ( column . DisplayValue , Is . EqualTo ( column . FullValue ) ) ;
79+ Assert . That ( column . DisplayValue . Length , Is . EqualTo ( 5_000 ) ) ;
3880 }
3981
4082 [ Test ]
41- public void Column_NullCharReplacement ( )
83+ public void Column_NullCharReplacement ( )
4284 {
43- Column column = new ( ) ;
44-
45- column . FullValue = "asdf\0 " ;
85+ Column column = new ( )
86+ {
87+ FullValue = "asdf\0 "
88+ } ;
4689
4790 //Switch between the different implementation for the windows versions
48- //Not that great solution but currently I'm out of ideas, I know that currently
91+ //Not that great solution but currently I'm out of ideas, I know that currently
4992 //only one implementation depending on the windows version is executed
5093 if ( Environment . Version >= Version . Parse ( "6.2" ) )
5194 {
@@ -60,11 +103,12 @@ public void Column_NullCharReplacement()
60103 }
61104
62105 [ Test ]
63- public void Column_TabReplacement ( )
106+ public void Column_TabReplacement ( )
64107 {
65- Column column = new ( ) ;
66-
67- column . FullValue = "asdf\t " ;
108+ Column column = new ( )
109+ {
110+ FullValue = "asdf\t "
111+ } ;
68112
69113 Assert . That ( column . DisplayValue , Is . EqualTo ( "asdf " ) ) ;
70114 Assert . That ( column . FullValue , Is . EqualTo ( "asdf\t " ) ) ;
0 commit comments