Skip to content
This repository was archived by the owner on Jan 6, 2021. It is now read-only.

Commit 0d33a26

Browse files
author
Charles S. Koppelman-Milstein
committed
Properly parse empty fields
1 parent 9b65325 commit 0d33a26

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

src/classes/CSVReader.cls

+2-2
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public class CSVReader {
127127
terminatorSet.add(NL);
128128
terminatorSet.add(null);
129129

130-
do {
130+
while(!terminatorSet.contains(this.tokenString) || (isQuoteMode == true)) {
131131
if(isQuoteMode){
132132
if((this.tokenString == QUOTE) && (this.lookAheadString == QUOTE)){
133133
returnValue = returnValue + QUOTE;
@@ -151,7 +151,7 @@ public class CSVReader {
151151

152152
}
153153

154-
} while(!terminatorSet.contains(this.tokenString) || (isQuoteMode == true));
154+
}
155155

156156

157157
return returnValue;

src/classes/CSVReader_Test.cls

+11
Original file line numberDiff line numberDiff line change
@@ -40,5 +40,16 @@ public class CSVReader_Test {
4040

4141
}
4242

43+
static testMethod void testZeroWidthValues() {
44+
String inputString = 'Id,Name,Description,Other\n' +
45+
'123,,"I like Freder\nick",""\n';
46+
CSVReader internalReader = new CSVReader(inputString, true);
47+
System.assertEquals('123', internalReader.listOfMaps[0].get('Id'));
48+
System.assertEquals('', internalReader.listOfMaps[0].get('Name'));
49+
System.assertEquals('I like Freder\nick', internalReader.listOfMaps[0].get('Description'));
50+
System.assertEquals('', internalReader.listOfMaps[0].get('Other'));
51+
52+
}
53+
4354

4455
}

0 commit comments

Comments
 (0)