1
1
using System ;
2
2
using System . Collections . Generic ;
3
- using System . Data ;
4
3
using Newtonsoft . Json . Linq ;
5
4
using NUnit . Framework ;
6
5
@@ -27,10 +26,10 @@ public void TestParseSkipRowsWithAutomaticHeaders()
27
26
dynamic resultJArray = result . ToJson ( ) ;
28
27
var resultXml = result . ToXml ( ) ;
29
28
var resultData = result . Data ;
30
- Assert . That ( resultData . Count , Is . EqualTo ( 2 ) ) ;
31
- Assert . That ( resultJArray . Count , Is . EqualTo ( 2 ) ) ;
32
- Assert . That ( resultXml , Does . Contain ( "<year>2000</year>" ) ) ;
33
- Assert . That ( resultJArray [ 0 ] . price . ToString ( ) , Is . EqualTo ( "2,34" ) ) ;
29
+ Assert . AreEqual ( resultData . Count , 2 ) ;
30
+ Assert . AreEqual ( resultJArray . Count , 2 ) ;
31
+ Assert . IsTrue ( resultXml . Contains ( "<year>2000</year>" ) ) ;
32
+ Assert . AreEqual ( resultJArray [ 0 ] . price . ToString ( ) , "2,34" ) ;
34
33
}
35
34
36
35
[ Test ]
@@ -54,10 +53,10 @@ public void TestParseWithColumnSpecAndMissingHeader()
54
53
var resultJArray = result . ToJson ( ) as JArray ;
55
54
var resultXml = result . ToXml ( ) ;
56
55
var resultData = result . Data ;
57
- Assert . That ( resultData . Count , Is . EqualTo ( 2 ) ) ;
58
- Assert . That ( resultJArray . Count , Is . EqualTo ( 2 ) ) ;
59
- Assert . That ( resultXml , Does . Contain ( "<Year>2000</Year>" ) ) ;
60
- Assert . That ( resultJArray [ 0 ] [ "Price" ] . Value < decimal > ( ) , Is . EqualTo ( 2.34 ) ) ;
56
+ Assert . AreEqual ( resultData . Count , 2 ) ;
57
+ Assert . AreEqual ( resultJArray . Count , 2 ) ;
58
+ Assert . IsTrue ( resultXml . Contains ( "<Year>2000</Year>" ) ) ;
59
+ Assert . AreEqual ( resultJArray [ 0 ] [ "Price" ] . Value < decimal > ( ) , 2.34 ) ;
61
60
}
62
61
63
62
[ Test ]
@@ -76,10 +75,10 @@ public void TestParseWithNoColumnSpecAndNoHeader()
76
75
var resultJArray = result . ToJson ( ) as JArray ;
77
76
var resultXml = result . ToXml ( ) ;
78
77
var resultData = result . Data ;
79
- Assert . That ( resultData . Count , Is . EqualTo ( 2 ) ) ;
80
- Assert . That ( resultJArray . Count , Is . EqualTo ( 2 ) ) ;
81
- Assert . That ( resultXml , Does . Contain ( "<0>2000</0>" ) ) ;
82
- Assert . That ( resultJArray [ 0 ] [ "3" ] . Value < string > ( ) , Is . EqualTo ( "2,34" ) ) ;
78
+ Assert . AreEqual ( resultData . Count , 2 ) ;
79
+ Assert . AreEqual ( resultJArray . Count , 2 ) ;
80
+ Assert . IsTrue ( resultXml . Contains ( "<0>2000</0>" ) ) ;
81
+ Assert . AreEqual ( resultJArray [ 0 ] [ "3" ] . Value < string > ( ) , "2,34" ) ;
83
82
}
84
83
85
84
[ Test ]
@@ -105,36 +104,36 @@ public void TestParseWillAllKindOfDataTypes()
105
104
} ,
106
105
Delimiter = ";" ,
107
106
Csv = csv
108
- } , new ParseOption ( ) { ContainsHeaderRow = true , CultureInfo = "fi-FI" } ) ;
109
- var resultJson = ( JArray ) result . ToJson ( ) ;
110
- Assert . That ( resultJson [ 0 ] [ "Long" ] . Value < long > ( ) , Is . EqualTo ( 4294967296 ) ) ;
107
+ } , new ParseOption ( ) { ContainsHeaderRow = true , CultureInfo = "fi-FI" , IgnoreReferences = true } ) ;
108
+ var resultJson = ( JArray ) result . ToJson ( ) ;
109
+ Assert . AreEqual ( resultJson [ 0 ] [ "Long" ] . Value < long > ( ) , 4294967296 ) ;
111
110
var resultXml = result . ToXml ( ) ;
112
- Assert . That ( resultXml , Does . Contain ( "<DateTime2>1.5.2008 10.34.42</DateTime2>" ) ) ;
111
+ Assert . IsTrue ( resultXml . Contains ( "<DateTime2>1.5.2008 10.34.42</DateTime2>" ) ) ;
113
112
var resultData = result . Data ;
114
113
var itemArray = resultData [ 0 ] ;
115
- Assert . That ( itemArray [ 0 ] . GetType ( ) , Is . EqualTo ( typeof ( int ) ) ) ;
116
- Assert . That ( itemArray [ 0 ] , Is . EqualTo ( 1997 ) ) ;
114
+ Assert . AreEqual ( itemArray [ 0 ] . GetType ( ) , typeof ( int ) ) ;
115
+ Assert . AreEqual ( itemArray [ 0 ] , 1997 ) ;
117
116
118
- Assert . That ( itemArray [ 1 ] . GetType ( ) , Is . EqualTo ( typeof ( string ) ) ) ;
119
- Assert . That ( itemArray [ 1 ] , Is . EqualTo ( "Fo;rd" ) ) ;
117
+ Assert . AreEqual ( itemArray [ 1 ] . GetType ( ) , typeof ( string ) ) ;
118
+ Assert . AreEqual ( itemArray [ 1 ] , "Fo;rd" ) ;
120
119
121
- Assert . That ( itemArray [ 2 ] . GetType ( ) , Is . EqualTo ( typeof ( decimal ) ) ) ;
122
- Assert . That ( itemArray [ 2 ] , Is . EqualTo ( 2.34d ) ) ;
120
+ Assert . AreEqual ( itemArray [ 2 ] . GetType ( ) , typeof ( decimal ) ) ;
121
+ Assert . AreEqual ( itemArray [ 2 ] , 2.34d ) ;
123
122
124
- Assert . That ( itemArray [ 3 ] . GetType ( ) , Is . EqualTo ( typeof ( bool ) ) ) ;
125
- Assert . That ( itemArray [ 3 ] , Is . EqualTo ( true ) ) ;
123
+ Assert . AreEqual ( itemArray [ 3 ] . GetType ( ) , typeof ( bool ) ) ;
124
+ Assert . AreEqual ( itemArray [ 3 ] , true ) ;
126
125
127
- Assert . That ( itemArray [ 4 ] . GetType ( ) , Is . EqualTo ( typeof ( bool ) ) ) ;
128
- Assert . That ( itemArray [ 4 ] , Is . EqualTo ( true ) ) ;
126
+ Assert . AreEqual ( itemArray [ 4 ] . GetType ( ) , typeof ( bool ) ) ;
127
+ Assert . AreEqual ( itemArray [ 4 ] , true ) ;
129
128
130
- Assert . That ( itemArray [ 5 ] . GetType ( ) , Is . EqualTo ( typeof ( long ) ) ) ;
131
- Assert . That ( itemArray [ 5 ] , Is . EqualTo ( 4294967296 ) ) ;
129
+ Assert . AreEqual ( itemArray [ 5 ] . GetType ( ) , typeof ( long ) ) ;
130
+ Assert . AreEqual ( itemArray [ 5 ] , 4294967296 ) ;
132
131
133
- Assert . That ( itemArray [ 6 ] . GetType ( ) , Is . EqualTo ( typeof ( char ) ) ) ;
134
- Assert . That ( itemArray [ 6 ] , Is . EqualTo ( 'f' ) ) ;
132
+ Assert . AreEqual ( itemArray [ 6 ] . GetType ( ) , typeof ( char ) ) ;
133
+ Assert . AreEqual ( itemArray [ 6 ] , 'f' ) ;
135
134
136
- Assert . That ( itemArray [ 7 ] . GetType ( ) , Is . EqualTo ( typeof ( DateTime ) ) ) ;
137
- Assert . That ( itemArray [ 7 ] , Is . EqualTo ( new DateTime ( 2008 , 9 , 15 ) ) ) ;
135
+ Assert . AreEqual ( itemArray [ 7 ] . GetType ( ) , typeof ( DateTime ) ) ;
136
+ Assert . AreEqual ( itemArray [ 7 ] , new DateTime ( 2008 , 9 , 15 ) ) ;
138
137
139
138
Assert . That ( itemArray [ 8 ] . GetType ( ) , Is . EqualTo ( typeof ( DateTime ) ) ) ;
140
139
Assert . That ( itemArray [ 8 ] , Is . EqualTo ( new DateTime ( 2008 , 5 , 1 , 10 , 34 , 42 ) ) ) ;
@@ -156,15 +155,15 @@ public void TestParseTreatMissingFieldsAsNullSetToTrue()
156
155
Csv = csv
157
156
} , new ParseOption ( ) { ContainsHeaderRow = true , CultureInfo = "fi-FI" , TreatMissingFieldsAsNulls = true } ) ;
158
157
var resultJson = ( JArray ) result . ToJson ( ) ;
159
- Assert . That ( resultJson [ 2 ] . Value < string > ( "header3" ) , Is . EqualTo ( null ) ) ;
158
+ Assert . AreEqual ( resultJson [ 2 ] . Value < string > ( "header3" ) , null ) ;
160
159
161
160
var resultXml = result . ToXml ( ) ;
162
- Assert . That ( resultXml , Does . Contain ( "<header3 />" ) ) ;
161
+ Assert . IsTrue ( resultXml . Contains ( "<header3 />" ) ) ;
163
162
164
163
var resultData = result . Data ;
165
164
var nullItem = resultData [ 2 ] [ 2 ] ;
166
165
167
- Assert . That ( nullItem , Is . EqualTo ( null ) ) ;
166
+ Assert . AreEqual ( nullItem , null ) ;
168
167
}
169
168
170
169
[ Test ]
@@ -193,7 +192,7 @@ public void TestParseTreatMissingFieldsAsNullDefaultValue()
193
192
{
194
193
var options = new ParseOption ( ) ;
195
194
196
- Assert . That ( options . TreatMissingFieldsAsNulls , Is . EqualTo ( false ) ) ;
195
+ Assert . AreEqual ( options . TreatMissingFieldsAsNulls , false ) ;
197
196
}
198
197
199
198
[ Test ]
@@ -216,40 +215,39 @@ public void TestWriteFromListTable()
216
215
new List < object > ( ) { 100 , "Dilantin" , "Melanie" , date }
217
216
} ;
218
217
219
- var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . List , Delimiter = ";" , Data = data , Headers = headers } , new CreateOption ( ) { CultureInfo = "fi-FI" } ) ;
220
- Assert . That ( result . Csv ,
221
- Is . EqualTo (
218
+ var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . List , Delimiter = ";" , Data = data , Headers = headers } , new CreateOption ( ) { CultureInfo = "fi-FI" } ) ;
219
+ Assert . AreEqual ( result . Csv ,
222
220
@"Dosage;Drug;Patient;Date
223
221
25;Indocin;David;1.1.2000 0.00.00
224
222
50;Enebrel;Sam;1.1.2000 0.00.00
225
223
10;Hydralazine;Christoff;1.1.2000 0.00.00
226
224
21;""Combiv;ent"";Janet;1.1.2000 0.00.00
227
225
100;Dilantin;Melanie;1.1.2000 0.00.00
228
- " ) ) ;
226
+ " ) ;
229
227
}
230
228
231
229
[ Test ]
232
230
public void TestWriteFromJson ( )
233
231
{
234
232
var json = @"[{""cool"":""nice"", ""what"": ""no""}, {""cool"":""not"", ""what"": ""yes""}, {""cool"":""maybe"", ""what"": ""never""}]" ;
235
- var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . Json , Delimiter = ";" , Json = json } , new CreateOption ( ) ) ;
236
- Assert . That ( result . Csv ,
237
- Is . EqualTo ( @"cool;what
233
+ var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . Json , Delimiter = ";" , Json = json } , new CreateOption ( ) ) ;
234
+ Assert . AreEqual ( result . Csv ,
235
+ @"cool;what
238
236
nice;no
239
237
not;yes
240
238
maybe;never
241
- " ) ) ;
239
+ " ) ;
242
240
}
243
241
244
242
[ Test ]
245
243
public void TestNullInputValue ( )
246
244
{
247
245
var json = @"[{""ShouldStayNull"":""null"", ""ShouldBeReplaced"": null}]" ;
248
246
var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . Json , Delimiter = ";" , Json = json } , new CreateOption ( ) { ReplaceNullsWith = "replacedvalue" } ) ;
249
- Assert . That ( result . Csv ,
250
- Is . EqualTo ( @"ShouldStayNull;ShouldBeReplaced
247
+ Assert . AreEqual ( result . Csv ,
248
+ @"ShouldStayNull;ShouldBeReplaced
251
249
null;replacedvalue
252
- " ) ) ;
250
+ " ) ;
253
251
}
254
252
255
253
[ Test ]
@@ -260,16 +258,23 @@ public void TestNoQuotesOption()
260
258
""bar"" : ""I would not""
261
259
}]" ;
262
260
var result2 = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . Json , Delimiter = ";" , Json = json } , new CreateOption ( ) { NeverAddQuotesAroundValues = false } ) ;
263
- Assert . That ( result2 . Csv ,
264
- Is . EqualTo ( @"foo;bar
261
+ Assert . AreEqual ( result2 . Csv ,
262
+ @"foo;bar
265
263
"" Normally I would have quotes "";I would not
266
- " ) ) ;
264
+ " ) ;
267
265
268
266
var result1 = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . Json , Delimiter = ";" , Json = json } , new CreateOption ( ) { NeverAddQuotesAroundValues = true } ) ;
269
- Assert . That ( result1 . Csv ,
270
- Is . EqualTo ( @"foo;bar
267
+ Assert . AreEqual ( result1 . Csv ,
268
+ @"foo;bar
271
269
Normally I would have quotes ;I would not
272
- " ) ) ;
270
+ " ) ;
271
+
272
+
273
+
274
+
275
+
276
+
277
+
273
278
}
274
279
275
280
[ Test ]
@@ -280,10 +285,10 @@ public void TestDatetimeValue()
280
285
""string"" : ""foo""
281
286
}]" ;
282
287
var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . Json , Delimiter = ";" , Json = json } , new CreateOption ( ) { } ) ;
283
- Assert . That ( result . Csv ,
284
- Is . EqualTo ( @"datetime;string
288
+ Assert . AreEqual ( result . Csv ,
289
+ @"datetime;string
285
290
2018-11-22T10:30:55;foo
286
- " ) ) ;
291
+ " ) ;
287
292
}
288
293
289
294
[ Test ]
@@ -295,10 +300,10 @@ public void TestDecimalValues()
295
300
""baz"" : 0.000000000000000000000000000000000000000000000000000000001
296
301
}]" ;
297
302
var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . Json , Delimiter = ";" , Json = json } , new CreateOption ( ) { } ) ;
298
- Assert . That ( result . Csv ,
299
- Is . EqualTo ( @"foo;bar;baz
303
+ Assert . AreEqual ( result . Csv ,
304
+ @"foo;bar;baz
300
305
0.1;1.00;0.000000000000000000000000000000000000000000000000000000001
301
- " ) ) ;
306
+ " ) ;
302
307
}
303
308
304
309
[ Test ]
@@ -323,10 +328,10 @@ public void ParseAndWriteShouldUseSeparateCultures()
323
328
324
329
var result = Csv . Create ( new CreateInput ( ) { InputType = CreateInputType . List , Delimiter = ";" , Data = parseResult . Data , Headers = parseResult . Headers } , new CreateOption ( ) { CultureInfo = "fi-FI" } ) ;
325
330
326
- Assert . That ( result . Csv , Is . EqualTo (
331
+ Assert . AreEqual ( result . Csv ,
327
332
@"First;Second;Number;Date
328
333
Foo;"" bar"";100;1.1.2000 0.00.00
329
- " ) ) ;
334
+ " ) ;
330
335
}
331
336
332
337
[ Test ]
@@ -346,10 +351,10 @@ public void TestParseRowsWithAutomaticHeadersWhiteSpaceRemovalDefault()
346
351
dynamic resultJArray = result . ToJson ( ) ;
347
352
var resultXml = result . ToXml ( ) ;
348
353
var resultData = result . Data ;
349
- Assert . That ( resultData . Count , Is . EqualTo ( 2 ) ) ;
350
- Assert . That ( resultJArray . Count , Is . EqualTo ( 2 ) ) ;
351
- Assert . That ( resultXml , Does . Contain ( "<year of the z>" ) ) ;
352
- Assert . That ( resultJArray [ 0 ] . price . ToString ( ) , Is . EqualTo ( "2,34" ) ) ;
354
+ Assert . AreEqual ( resultData . Count , 2 ) ;
355
+ Assert . AreEqual ( resultJArray . Count , 2 ) ;
356
+ Assert . IsTrue ( resultXml . Contains ( "<year of the z>" ) ) ;
357
+ Assert . AreEqual ( resultJArray [ 0 ] . price . ToString ( ) , "2,34" ) ;
353
358
}
354
359
355
360
[ Test ]
@@ -369,10 +374,31 @@ public void TestParseRowsWithAutomaticHeadersWhiteSpaceRemovalGiven()
369
374
dynamic resultJArray = result . ToJson ( ) ;
370
375
var resultXml = result . ToXml ( ) ;
371
376
var resultData = result . Data ;
372
- Assert . That ( resultData . Count , Is . EqualTo ( 2 ) ) ;
373
- Assert . That ( resultJArray . Count , Is . EqualTo ( 2 ) ) ;
374
- Assert . That ( resultXml , Does . Contain ( "<year_of_the_z>" ) ) ;
375
- Assert . That ( resultJArray [ 0 ] . price . ToString ( ) , Is . EqualTo ( "2,34" ) ) ;
377
+ Assert . AreEqual ( resultData . Count , 2 ) ;
378
+ Assert . AreEqual ( resultJArray . Count , 2 ) ;
379
+ Assert . IsTrue ( resultXml . Contains ( "<year_of_the_z>" ) ) ;
380
+ Assert . AreEqual ( resultJArray [ 0 ] . price . ToString ( ) , "2,34" ) ;
376
381
}
382
+
383
+ [ Test ]
384
+ public void TestParseIgnoresQuotesInRowData ( )
385
+ {
386
+ var csv = "asdasd\n Coolio\n year;car\" ;mark;price\n 1997;Ford;E350;2,34\n 2000;Mercury;Cougar;2,38" ;
387
+ var result = Csv . Parse ( new ParseInput ( )
388
+ {
389
+ ColumnSpecifications = new ColumnSpecification [ 0 ] ,
390
+ Delimiter = ";" ,
391
+ Csv = csv
392
+ } , new ParseOption ( ) { ContainsHeaderRow = true , SkipRowsFromTop = 2 , SkipEmptyRows = false , IgnoreQuotes = true } ) ;
393
+
394
+ dynamic resultJArray = result . ToJson ( ) ;
395
+ var resultXml = result . ToXml ( ) ;
396
+ var resultData = result . Data ;
397
+ Assert . AreEqual ( resultData . Count , 2 ) ;
398
+ Assert . AreEqual ( resultJArray . Count , 2 ) ;
399
+ Assert . IsTrue ( resultXml . Contains ( "<year>2000</year>" ) ) ;
400
+ Assert . AreEqual ( resultJArray [ 0 ] . price . ToString ( ) , "2,34" ) ;
401
+ }
402
+
377
403
}
378
404
}
0 commit comments