@@ -61,11 +61,11 @@ public void unbalancedQuoteInName() {
6161 String badLine = "Col1, \" Col2\n Val1, Val2" ;
6262 try {
6363 CDL .toJSONArray (badLine );
64- assertTrue ("Expecting an exception" , false );
64+ fail ("Expecting an exception" );
6565 } catch (JSONException e ) {
66- assertTrue ("Expecting an exception message" ,
67- "Missing close quote '\" '. at 12 [character 0 line 2]" .
68- equals ( e .getMessage () ));
66+ assertEquals ("Expecting an exception message" ,
67+ "Missing close quote '\" '. at 12 [character 0 line 2]" ,
68+ e .getMessage ());
6969 }
7070 }
7171
@@ -78,11 +78,11 @@ public void unbalancedQuoteInValue() {
7878 String badLine = "Col1, Col2\n \" Val1, Val2" ;
7979 try {
8080 CDL .toJSONArray (badLine );
81- assertTrue ("Expecting an exception" , false );
81+ fail ("Expecting an exception" );
8282 } catch (JSONException e ) {
83- assertTrue ("Expecting an exception message" ,
84- "Missing close quote '\" '. at 23 [character 12 line 3]" .
85- equals ( e .getMessage () ));
83+ assertEquals ("Expecting an exception message" ,
84+ "Missing close quote '\" '. at 22 [character 11 line 2]" ,
85+ e .getMessage ());
8686
8787 }
8888 }
@@ -96,11 +96,11 @@ public void nullInName() {
9696 String badLine = "C\0 ol1, Col2\n Val1, Val2" ;
9797 try {
9898 CDL .toJSONArray (badLine );
99- assertTrue ("Expecting an exception" , false );
99+ fail ("Expecting an exception" );
100100 } catch (JSONException e ) {
101- assertTrue ("Expecting an exception message" ,
102- "Bad character 'o' (111). at 3 [character 4 line 1]" .
103- equals ( e .getMessage () ));
101+ assertEquals ("Expecting an exception message" ,
102+ "Bad character 'o' (111). at 2 [character 3 line 1]" ,
103+ e .getMessage ());
104104
105105 }
106106 }
@@ -114,11 +114,11 @@ public void unbalancedEscapedQuote(){
114114 String badLine = "Col1, Col2\n \" Val1, \" \" Val2\" \" " ;
115115 try {
116116 CDL .toJSONArray (badLine );
117- assertTrue ("Expecting an exception" , false );
117+ fail ("Expecting an exception" );
118118 } catch (JSONException e ) {
119- assertTrue ("Expecting an exception message" ,
120- "Missing close quote '\" '. at 27 [character 16 line 3]" .
121- equals ( e .getMessage () ));
119+ assertEquals ("Expecting an exception message" ,
120+ "Missing close quote '\" '. at 26 [character 15 line 2]" ,
121+ e .getMessage ());
122122
123123 }
124124 }
@@ -128,15 +128,30 @@ public void unbalancedEscapedQuote(){
128128 */
129129 @ Test
130130 public void singleEscapedQuote (){
131- String singleEscape = "Col1, Col2\n Val1, \" \" \" Val2\" " ;
131+ String singleEscape = "Col1, Col2\n Val1, \" \" \" Val2\" " ;
132132 JSONArray jsonArray = CDL .toJSONArray (singleEscape );
133133
134134 String cdlStr = CDL .toString (jsonArray );
135135 assertTrue (cdlStr .contains ("Col1" ));
136136 assertTrue (cdlStr .contains ("Col2" ));
137137 assertTrue (cdlStr .contains ("Val1" ));
138138 assertTrue (cdlStr .contains ("\" Val2" ));
139+ }
140+
141+ /**
142+ * Assert that there is no error for a single escaped quote within a properly
143+ * embedded quote when not the last value.
144+ */
145+ @ Test
146+ public void singleEscapedQuoteMiddleString (){
147+ String singleEscape = "Col1, Col2\n Val1, \" \" \" Val2\" \n Val 3,Val 4" ;
148+ JSONArray jsonArray = CDL .toJSONArray (singleEscape );
139149
150+ String cdlStr = CDL .toString (jsonArray );
151+ assertTrue (cdlStr .contains ("Col1" ));
152+ assertTrue (cdlStr .contains ("Col2" ));
153+ assertTrue (cdlStr .contains ("Val1" ));
154+ assertTrue (cdlStr .contains ("\" Val2" ));
140155 }
141156
142157 /**
@@ -149,12 +164,12 @@ public void badEscapedQuote(){
149164
150165 try {
151166 CDL .toJSONArray (badLine );
152- assertTrue ("Expecting an exception" , false );
167+ fail ("Expecting an exception" );
153168 } catch (JSONException e ) {
154169 System .out .println ("Message" + e .getMessage ());
155- assertTrue ("Expecting an exception message" ,
156- "Bad character 'V' (86). at 20 [character 9 line 3]" .
157- equals ( e .getMessage () ));
170+ assertEquals ("Expecting an exception message" ,
171+ "Bad character 'V' (86). at 20 [character 9 line 2]" ,
172+ e .getMessage ());
158173
159174 }
160175
@@ -186,8 +201,8 @@ public void emptyString() {
186201 public void onlyColumnNames () {
187202 String columnNameStr = "col1, col2, col3" ;
188203 JSONArray jsonArray = CDL .toJSONArray (columnNameStr );
189- assertTrue ("CDL should return null when only 1 row is given" ,
190- jsonArray == null );
204+ assertNull ("CDL should return null when only 1 row is given" ,
205+ jsonArray );
191206 }
192207
193208 /**
@@ -197,8 +212,8 @@ public void onlyColumnNames() {
197212 public void emptyLinesToJSONArray () {
198213 String str = " , , , \n , , , " ;
199214 JSONArray jsonArray = CDL .toJSONArray (str );
200- assertTrue ("JSONArray should be null for no content" ,
201- jsonArray == null );
215+ assertNull ("JSONArray should be null for no content" ,
216+ jsonArray );
202217 }
203218
204219 /**
@@ -208,8 +223,8 @@ public void emptyLinesToJSONArray() {
208223 public void emptyJSONArrayToString () {
209224 JSONArray jsonArray = new JSONArray ();
210225 String str = CDL .toString (jsonArray );
211- assertTrue ("CDL should return null for toString(null)" ,
212- str == null );
226+ assertNull ("CDL should return null for toString(null)" ,
227+ str );
213228 }
214229
215230 /**
@@ -218,8 +233,8 @@ public void emptyJSONArrayToString() {
218233 @ Test
219234 public void nullJSONArraysToString () {
220235 String str = CDL .toString (null , null );
221- assertTrue ("CDL should return null for toString(null)" ,
222- str == null );
236+ assertNull ("CDL should return null for toString(null)" ,
237+ str );
223238 }
224239
225240 /**
0 commit comments