5
5
6
6
namespace ServiceStack . Text . Tests
7
7
{
8
- [ TestFixture ]
9
- public class StringExtensionsTests
10
- {
11
- [ Test ]
12
- public void Can_SplitOnFirst_char_needle ( )
13
- {
14
- var parts = "user:pass@w:rd" . SplitOnFirst ( ':' ) ;
15
- Assert . That ( parts [ 0 ] , Is . EqualTo ( "user" ) ) ;
16
- Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@w:rd" ) ) ;
17
- }
18
-
19
- [ Test ]
20
- public void Can_SplitOnFirst_string_needle ( )
21
- {
22
- var parts = "user:pass@w:rd" . SplitOnFirst ( ":" ) ;
23
- Assert . That ( parts [ 0 ] , Is . EqualTo ( "user" ) ) ;
24
- Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@w:rd" ) ) ;
25
- }
26
-
27
- [ Test ]
28
- public void Can_SplitOnLast_char_needle ( )
29
- {
30
- var parts = "user:name:pass@word" . SplitOnLast ( ':' ) ;
31
- Assert . That ( parts [ 0 ] , Is . EqualTo ( "user:name" ) ) ;
32
- Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@word" ) ) ;
33
- }
34
-
35
- [ Test ]
36
- public void Can_SplitOnLast_string_needle ( )
37
- {
38
- var parts = "user:name:pass@word" . SplitOnLast ( ":" ) ;
39
- Assert . That ( parts [ 0 ] , Is . EqualTo ( "user:name" ) ) ;
40
- Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@word" ) ) ;
41
- }
42
-
43
- private static readonly char DirSep = Path . DirectorySeparatorChar ;
44
- private static readonly char AltDirSep = Path . DirectorySeparatorChar == '/' ? '\\ ' : '/' ;
45
-
46
- [ Test ]
47
- public void Does_get_ParentDirectory ( )
48
- {
49
- var dirSep = DirSep ;
50
- var filePath = "path{0}to{0}file" . FormatWith ( dirSep ) ;
51
- Assert . That ( filePath . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
52
- Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
53
- Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
54
-
55
- var filePathWithExt = "path{0}to{0}file/" . FormatWith ( dirSep ) ;
56
- Assert . That ( filePathWithExt . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
57
- Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
58
- Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
59
- }
60
-
61
- [ Test ]
62
- public void Does_get_ParentDirectory_of_AltDirectorySeperator ( )
63
- {
64
- var dirSep = AltDirSep ;
65
- var filePath = "path{0}to{0}file" . FormatWith ( dirSep ) ;
66
- Assert . That ( filePath . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
67
- Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
68
- Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
69
-
70
- var filePathWithExt = "path{0}to{0}file{0}" . FormatWith ( dirSep ) ;
71
- Assert . That ( filePathWithExt . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
72
- Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
73
- Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
74
- }
75
-
76
- [ Test ]
77
- public void Does_not_alter_filepath_without_extension ( )
78
- {
79
- var path = "path/dir.with.dot/to/file" ;
80
- Assert . That ( path . WithoutExtension ( ) , Is . EqualTo ( path ) ) ;
81
-
82
- Assert . That ( "path/to/file.ext" . WithoutExtension ( ) , Is . EqualTo ( "path/to/file" ) ) ;
83
- }
8
+ [ TestFixture ]
9
+ public class StringExtensionsTests
10
+ {
11
+ [ Test ]
12
+ public void Can_SplitOnFirst_char_needle ( )
13
+ {
14
+ var parts = "user:pass@w:rd" . SplitOnFirst ( ':' ) ;
15
+ Assert . That ( parts [ 0 ] , Is . EqualTo ( "user" ) ) ;
16
+ Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@w:rd" ) ) ;
17
+ }
18
+
19
+ [ Test ]
20
+ public void Can_SplitOnFirst_string_needle ( )
21
+ {
22
+ var parts = "user:pass@w:rd" . SplitOnFirst ( ":" ) ;
23
+ Assert . That ( parts [ 0 ] , Is . EqualTo ( "user" ) ) ;
24
+ Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@w:rd" ) ) ;
25
+ }
26
+
27
+ [ Test ]
28
+ public void Can_SplitOnLast_char_needle ( )
29
+ {
30
+ var parts = "user:name:pass@word" . SplitOnLast ( ':' ) ;
31
+ Assert . That ( parts [ 0 ] , Is . EqualTo ( "user:name" ) ) ;
32
+ Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@word" ) ) ;
33
+ }
34
+
35
+ [ Test ]
36
+ public void Can_SplitOnLast_string_needle ( )
37
+ {
38
+ var parts = "user:name:pass@word" . SplitOnLast ( ":" ) ;
39
+ Assert . That ( parts [ 0 ] , Is . EqualTo ( "user:name" ) ) ;
40
+ Assert . That ( parts [ 1 ] , Is . EqualTo ( "pass@word" ) ) ;
41
+ }
42
+
43
+ private static readonly char DirSep = Path . DirectorySeparatorChar ;
44
+ private static readonly char AltDirSep = Path . DirectorySeparatorChar == '/' ? '\\ ' : '/' ;
45
+
46
+ [ Test ]
47
+ public void Does_get_ParentDirectory ( )
48
+ {
49
+ var dirSep = DirSep ;
50
+ var filePath = "path{0}to{0}file" . FormatWith ( dirSep ) ;
51
+ Assert . That ( filePath . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
52
+ Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
53
+ Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
54
+
55
+ var filePathWithExt = "path{0}to{0}file/" . FormatWith ( dirSep ) ;
56
+ Assert . That ( filePathWithExt . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
57
+ Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
58
+ Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
59
+ }
60
+
61
+ [ Test ]
62
+ public void Does_get_ParentDirectory_of_AltDirectorySeperator ( )
63
+ {
64
+ var dirSep = AltDirSep ;
65
+ var filePath = "path{0}to{0}file" . FormatWith ( dirSep ) ;
66
+ Assert . That ( filePath . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
67
+ Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
68
+ Assert . That ( filePath . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
69
+
70
+ var filePathWithExt = "path{0}to{0}file{0}" . FormatWith ( dirSep ) ;
71
+ Assert . That ( filePathWithExt . ParentDirectory ( ) , Is . EqualTo ( "path{0}to" . FormatWith ( dirSep ) ) ) ;
72
+ Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) , Is . EqualTo ( "path" . FormatWith ( dirSep ) ) ) ;
73
+ Assert . That ( filePathWithExt . ParentDirectory ( ) . ParentDirectory ( ) . ParentDirectory ( ) , Is . Null ) ;
74
+ }
75
+
76
+ [ Test ]
77
+ public void Does_not_alter_filepath_without_extension ( )
78
+ {
79
+ var path = "path/dir.with.dot/to/file" ;
80
+ Assert . That ( path . WithoutExtension ( ) , Is . EqualTo ( path ) ) ;
81
+
82
+ Assert . That ( "path/to/file.ext" . WithoutExtension ( ) , Is . EqualTo ( "path/to/file" ) ) ;
83
+ }
84
84
85
85
// 0 1
86
86
// 01234567890123456789
@@ -89,28 +89,28 @@ public void Does_not_alter_filepath_without_extension()
89
89
[ TestCase ( "text with /* and <!--" , "<!--" , "/*x" , 17 ) ]
90
90
[ TestCase ( "text with /* and <!--" , "<!--x" , "/*x" , - 1 ) ]
91
91
public void Does_find_IndexOfAny_strings ( string text , string needle1 , string needle2 , int expectedPos )
92
- {
93
- var pos = text . IndexOfAny ( needle1 , needle2 ) ;
94
- Assert . That ( pos , Is . EqualTo ( expectedPos ) ) ;
95
- }
92
+ {
93
+ var pos = text . IndexOfAny ( needle1 , needle2 ) ;
94
+ Assert . That ( pos , Is . EqualTo ( expectedPos ) ) ;
95
+ }
96
96
97
97
[ Test ]
98
- public void Does_ExtractContent_first_pattern_from_Document_without_marker ( )
99
- {
100
- var text = "text with random <!--comment--> and Contents: <!--Contents--> are here" ;
101
- var extract = text . ExtractContents ( "<!--" , "-->" ) ;
98
+ public void Does_ExtractContent_first_pattern_from_Document_without_marker ( )
99
+ {
100
+ var text = "text with random <!--comment--> and Contents: <!--Contents--> are here" ;
101
+ var extract = text . ExtractContents ( "<!--" , "-->" ) ;
102
102
103
- Assert . That ( extract , Is . EqualTo ( "comment" ) ) ;
104
- }
103
+ Assert . That ( extract , Is . EqualTo ( "comment" ) ) ;
104
+ }
105
105
106
- [ Test ]
107
- public void Does_ExtractContents_from_Document ( )
108
- {
109
- var text = "text with random <!--comment--> and Contents: <!--Contents--> are here" ;
110
- var extract = text . ExtractContents ( "Contents:" , "<!--" , "-->" ) ;
106
+ [ Test ]
107
+ public void Does_ExtractContents_from_Document ( )
108
+ {
109
+ var text = "text with random <!--comment--> and Contents: <!--Contents--> are here" ;
110
+ var extract = text . ExtractContents ( "Contents:" , "<!--" , "-->" ) ;
111
111
112
- Assert . That ( extract , Is . EqualTo ( "Contents" ) ) ;
113
- }
112
+ Assert . That ( extract , Is . EqualTo ( "Contents" ) ) ;
113
+ }
114
114
115
115
[ Test ]
116
116
public void Can_Url_Encode_String ( )
@@ -119,7 +119,7 @@ public void Can_Url_Encode_String()
119
119
120
120
var encoded = text . UrlEncode ( ) ;
121
121
122
- Assert . That ( encoded ,
122
+ Assert . That ( encoded ,
123
123
Is . EqualTo ( "This+string+%26+has+%25+unsafe+%3f+characters+for+%29%5f%28%2a%26%5e%25%24%24%5e%24%40%23+a+query+string" ) ) ;
124
124
125
125
var decoded = encoded . UrlDecode ( ) ;
@@ -176,7 +176,7 @@ public void Can_ToTitleCase_Empty_String()
176
176
Assert . That ( ttc , Is . EqualTo ( "" ) ) ;
177
177
}
178
178
179
- [ Test ]
179
+ [ Test ]
180
180
public void Can_Url_Encode_Unicode_String ( )
181
181
{
182
182
var text = "This string & has % 权뜑簒㮐ᾟ䗚璥趮⚦䭌䳅浝䕌ਥ⤧笫 characters" ;
@@ -191,9 +191,9 @@ public void Can_Url_Encode_Unicode_String()
191
191
Assert . That ( decoded , Is . EqualTo ( text ) ) ;
192
192
}
193
193
194
- [ Test ]
195
- public void Can_trim_prefixes ( )
196
- {
194
+ [ Test ]
195
+ public void Can_trim_prefixes ( )
196
+ {
197
197
Assert . That ( "/www_deploy/path/info" . TrimPrefixes ( "/www_deploy" , "~/www_deploy" ) ,
198
198
Is . EqualTo ( "/path/info" ) ) ;
199
199
Assert . That ( "~/www_deploy/path/info" . TrimPrefixes ( "/www_deploy" , "~/www_deploy" ) ,
@@ -202,19 +202,19 @@ public void Can_trim_prefixes()
202
202
Is . EqualTo ( "/path/info" ) ) ;
203
203
}
204
204
205
- [ Test ]
206
- public void Can_read_lines ( )
207
- {
205
+ [ Test ]
206
+ public void Can_read_lines ( )
207
+ {
208
208
Assert . That ( ( null as string ) . ReadLines ( ) . Count ( ) , Is . EqualTo ( 0 ) ) ;
209
209
Assert . That ( "" . ReadLines ( ) . Count ( ) , Is . EqualTo ( 0 ) ) ;
210
210
Assert . That ( "a" . ReadLines ( ) . Count ( ) , Is . EqualTo ( 1 ) ) ;
211
211
Assert . That ( "a\n b" . ReadLines ( ) . Count ( ) , Is . EqualTo ( 2 ) ) ;
212
212
Assert . That ( "a\r \n b" . ReadLines ( ) . Count ( ) , Is . EqualTo ( 2 ) ) ;
213
- }
213
+ }
214
214
215
- [ Test ]
216
- public void Can_ParseKeyValueText ( )
217
- {
215
+ [ Test ]
216
+ public void Can_ParseKeyValueText ( )
217
+ {
218
218
Assert . That ( "" . ParseKeyValueText ( ) . Count , Is . EqualTo ( 0 ) ) ;
219
219
Assert . That ( "a" . ParseKeyValueText ( ) . Count , Is . EqualTo ( 1 ) ) ;
220
220
Assert . That ( "a" . ParseKeyValueText ( ) [ "a" ] , Is . Null ) ;
@@ -226,26 +226,26 @@ public void Can_ParseKeyValueText()
226
226
Assert . That ( "a:b\n c:d" . ParseKeyValueText ( ) [ "c" ] , Is . EqualTo ( "d" ) ) ;
227
227
Assert . That ( "a:b\r \n c:d" . ParseKeyValueText ( ) [ "c" ] , Is . EqualTo ( "d" ) ) ;
228
228
}
229
-
229
+
230
230
[ Test ]
231
- public void Can_SafeSubstring_with_no_length {
232
-
233
- var input = "TestString" ;
234
- Assert . That ( input . SafeSubstring( 0 ) , Is . EqualTo( "TestString") ) ;
235
- Assert . That ( input . SafeSubstring( 2 ) , Is . EqualTo( "stString") ) ;
236
- Assert . That ( input . SafeSubstring( 20 ) , Is . EqualTo( "") ) ;
231
+ public void Can_SafeSubstring_with_no_length ( )
232
+ {
233
+
234
+ var input = "TestString" ;
235
+ Assert . That ( input . SafeSubstring ( 0 ) , Is . EqualTo ( "TestString" ) ) ;
236
+ Assert . That ( input . SafeSubstring ( 2 ) , Is . EqualTo ( "stString" ) ) ;
237
+ Assert . That ( input . SafeSubstring ( 20 ) , Is . EqualTo ( "" ) ) ;
237
238
}
238
-
239
+
239
240
[ Test ]
240
- public void Can_SafeSubstring_with_length {
241
- var input = "TestString" ;
242
- Assert . That ( input . SafeSubstring( 0 , 4 ) , Is . EqualTo( "Test") ) ;
243
- Assert . That ( input . SafeSubstring( 2 , 4 ) , Is . EqualTo( "stSt") ) ;
244
- Assert . That ( input . SafeSubstring( 20 , 4 ) , Is . EqualTo( "") ) ;
245
- Assert . That ( input . SafeSubstring( 0 , 20 ) , Is . EqualTo( "TestString") ) ;
246
-
247
- }
248
- }
241
+ public void Can_SafeSubstring_with_length ( )
242
+ {
243
+ var input = "TestString" ;
244
+ Assert . That ( input . SafeSubstring ( 0 , 4 ) , Is . EqualTo ( "Test" ) ) ;
245
+ Assert . That ( input . SafeSubstring ( 2 , 4 ) , Is . EqualTo ( "stSt" ) ) ;
246
+ Assert . That ( input . SafeSubstring ( 20 , 4 ) , Is . EqualTo ( "" ) ) ;
247
+ Assert . That ( input . SafeSubstring ( 0 , 20 ) , Is . EqualTo ( "TestString" ) ) ;
248
+
249
249
}
250
- }
250
+ }
251
251
}
0 commit comments