55
66namespace ServiceStack . Text . Tests . CsvTests
77{
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+ }
121122}
0 commit comments