5
5
6
6
namespace ServiceStack . Text . Tests . CsvTests
7
7
{
8
- [ TestFixture ]
9
- public class CustomHeaderTests
10
- {
11
- [ OneTimeTearDown ]
12
- public void TestFixtureTearDown ( )
13
- {
14
- CsvConfig < TableItem > . Reset ( ) ;
15
- }
16
-
17
- [ Test ]
18
- public void Can_serialize_custom_headers_map ( )
19
- {
20
- CsvConfig < TableItem > . CustomHeadersMap = new Dictionary < string , string > {
21
- { "Column1Data" , "Column 1" } ,
22
- { "Column2Data" , "Column 2" } ,
23
- { "Column3Data" , "Column,3" } ,
24
- { "Column4Data" , "Column\n 4" } ,
25
- { "Column5Data" , "Column 5" } ,
26
- } ;
27
- var data = new List < TableItem > {
28
- new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
29
- new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
30
- } ;
31
-
32
- var csv = CsvSerializer . SerializeToCsv ( data ) ;
33
-
34
- Console . WriteLine ( csv ) ;
35
-
36
- Assert . That ( csv , Is . EqualTo (
37
- "Column 1,Column 2,\" Column,3\" ,\" Column\n 4\" ,Column 5\r \n "
38
- + "I,Like,To,Read,Novels\r \n "
39
- + "I am,Very,Cool,And,Awesome\r \n "
40
- ) ) ;
41
- }
42
-
43
- [ Test ]
44
- public void Can_serialize_custom_anonymous_type_headers ( )
45
- {
46
- CsvConfig < TableItem > . CustomHeaders = new {
47
- Column1Data = "Column 1" ,
48
- Column2Data = "Column 2" ,
49
- Column3Data = "Column,3" ,
50
- Column4Data = "Column\n 4" ,
51
- Column5Data = "Column 5" ,
52
- } ;
53
- var data = new List < TableItem > {
54
- new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
55
- new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
56
- } ;
57
-
58
- var csv = CsvSerializer . SerializeToCsv ( data ) ;
59
-
60
- Console . WriteLine ( csv ) ;
61
-
62
- Assert . That ( csv , Is . EqualTo (
63
- "Column 1,Column 2,\" Column,3\" ,\" Column\n 4\" ,Column 5\r \n "
64
- + "I,Like,To,Read,Novels\r \n "
65
- + "I am,Very,Cool,And,Awesome\r \n "
66
- ) ) ;
67
- }
68
-
69
- [ Test ]
70
- public void Can_serialize_partial_custom_headers_map ( )
71
- {
72
- CsvConfig < TableItem > . CustomHeadersMap = new Dictionary < string , string > {
73
- { "Column1Data" , "Column 1" } ,
74
- { "Column3Data" , "Column,3" } ,
75
- { "Column5Data" , "Column 5" } ,
76
- } ;
77
- var data = new List < TableItem > {
78
- new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
79
- new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
80
- } ;
81
-
82
- var csv = CsvSerializer . SerializeToCsv ( data ) ;
83
-
84
- Console . WriteLine ( csv ) ;
85
-
86
- Assert . That ( csv , Is . EqualTo (
87
- "Column 1,\" Column,3\" ,Column 5\r \n "
88
- + "I,To,Novels\r \n "
89
- + "I am,Cool,Awesome\r \n "
90
- ) ) ;
91
- }
92
-
93
- [ Test ]
94
- public void Can_serialize_without_headers ( )
95
- {
96
- CsvConfig < TableItem > . OmitHeaders = true ;
97
-
98
- CsvConfig < TableItem > . CustomHeadersMap = new Dictionary < string , string > {
99
- { "Column1Data" , "Column 1" } ,
100
- { "Column2Data" , "Column 2" } ,
101
- { "Column3Data" , "Column,3" } ,
102
- { "Column4Data" , "Column\n 4" } ,
103
- { "Column5Data" , "Column 5" } ,
104
- } ;
105
- var data = new List < TableItem > {
106
- new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
107
- new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
108
- } ;
109
-
110
- var csv = CsvSerializer . SerializeToCsv ( data ) ;
111
-
112
- Console . WriteLine ( csv ) ;
113
-
114
- Assert . That ( csv , Is . EqualTo (
115
- "I,Like,To,Read,Novels\r \n "
116
- + "I am,Very,Cool,And,Awesome\r \n "
117
- ) ) ;
118
- }
119
-
120
- }
8
+ [ TestFixture ]
9
+ public class CustomHeaderTests
10
+ {
11
+ [ OneTimeTearDown ]
12
+ public void TestFixtureTearDown ( )
13
+ {
14
+ CsvConfig < TableItem > . Reset ( ) ;
15
+ }
16
+
17
+ [ Test ]
18
+ public void Can_serialize_custom_headers_map ( )
19
+ {
20
+ CsvConfig < TableItem > . CustomHeadersMap = new Dictionary < string , string > {
21
+ { "Column1Data" , "Column 1" } ,
22
+ { "Column2Data" , "Column 2" } ,
23
+ { "Column3Data" , "Column,3" } ,
24
+ { "Column4Data" , "Column\n 4" } ,
25
+ { "Column5Data" , "Column 5" } ,
26
+ } ;
27
+ var data = new List < TableItem > {
28
+ new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
29
+ new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
30
+ } ;
31
+
32
+ var csv = CsvSerializer . SerializeToCsv ( data ) ;
33
+
34
+ Console . WriteLine ( csv ) ;
35
+
36
+ Assert . That ( csv , Is . EqualTo (
37
+ "Column 1,Column 2,\" Column,3\" ,\" Column\n 4\" ,Column 5\r \n "
38
+ + "I,Like,To,Read,Novels\r \n "
39
+ + "I am,Very,Cool,And,Awesome\r \n "
40
+ ) ) ;
41
+ }
42
+
43
+ [ Test ]
44
+ public void Can_serialize_custom_anonymous_type_headers ( )
45
+ {
46
+ CsvConfig < TableItem > . CustomHeaders = new
47
+ {
48
+ Column1Data = "Column 1" ,
49
+ Column2Data = "Column 2" ,
50
+ Column3Data = "Column,3" ,
51
+ Column4Data = "Column\n 4" ,
52
+ Column5Data = "Column 5" ,
53
+ } ;
54
+ var data = new List < TableItem > {
55
+ new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
56
+ new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
57
+ } ;
58
+
59
+ var csv = CsvSerializer . SerializeToCsv ( data ) ;
60
+
61
+ Console . WriteLine ( csv ) ;
62
+
63
+ Assert . That ( csv , Is . EqualTo (
64
+ "Column 1,Column 2,\" Column,3\" ,\" Column\n 4\" ,Column 5\r \n "
65
+ + "I,Like,To,Read,Novels\r \n "
66
+ + "I am,Very,Cool,And,Awesome\r \n "
67
+ ) ) ;
68
+ }
69
+
70
+ [ Test ]
71
+ public void Can_serialize_partial_custom_headers_map ( )
72
+ {
73
+ CsvConfig < TableItem > . CustomHeadersMap = new Dictionary < string , string > {
74
+ { "Column1Data" , "Column 1" } ,
75
+ { "Column3Data" , "Column,3" } ,
76
+ { "Column5Data" , "Column 5" } ,
77
+ } ;
78
+ var data = new List < TableItem > {
79
+ new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
80
+ new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
81
+ } ;
82
+
83
+ var csv = CsvSerializer . SerializeToCsv ( data ) ;
84
+
85
+ Console . WriteLine ( csv ) ;
86
+
87
+ Assert . That ( csv , Is . EqualTo (
88
+ "Column 1,\" Column,3\" ,Column 5\r \n "
89
+ + "I,To,Novels\r \n "
90
+ + "I am,Cool,Awesome\r \n "
91
+ ) ) ;
92
+ }
93
+
94
+ [ Test ]
95
+ public void Can_serialize_without_headers ( )
96
+ {
97
+ CsvConfig < TableItem > . OmitHeaders = true ;
98
+
99
+ CsvConfig < TableItem > . CustomHeadersMap = new Dictionary < string , string > {
100
+ { "Column1Data" , "Column 1" } ,
101
+ { "Column2Data" , "Column 2" } ,
102
+ { "Column3Data" , "Column,3" } ,
103
+ { "Column4Data" , "Column\n 4" } ,
104
+ { "Column5Data" , "Column 5" } ,
105
+ } ;
106
+ var data = new List < TableItem > {
107
+ new TableItem { Column1Data = "I" , Column2Data = "Like" , Column3Data = "To" , Column4Data = "Read" , Column5Data = "Novels" } ,
108
+ new TableItem { Column1Data = "I am" , Column2Data = "Very" , Column3Data = "Cool" , Column4Data = "And" , Column5Data = "Awesome" } ,
109
+ } ;
110
+
111
+ var csv = CsvSerializer . SerializeToCsv ( data ) ;
112
+
113
+ Console . WriteLine ( csv ) ;
114
+
115
+ Assert . That ( csv , Is . EqualTo (
116
+ "I,Like,To,Read,Novels\r \n "
117
+ + "I am,Very,Cool,And,Awesome\r \n "
118
+ ) ) ;
119
+ }
120
+
121
+ }
121
122
}
0 commit comments