@@ -104,6 +104,81 @@ public void testReadProps() throws Exception {
104104 Utils .delete (producerConfig );
105105 }
106106
107+ @ Test
108+ public void testReadPayloadFileWithAlternateDelimiters () throws Exception {
109+ List <byte []> payloadByteList ;
110+
111+ payloadByteList = generateListFromFileUsingDelimiter ("Hello~~Kafka" , "~~" );
112+ assertEquals (2 , payloadByteList .size ());
113+ assertEquals ("Hello" , new String (payloadByteList .get (0 )));
114+ assertEquals ("Kafka" , new String (payloadByteList .get (1 )));
115+
116+ payloadByteList = generateListFromFileUsingDelimiter ("Hello,Kafka," , "," );
117+ assertEquals (2 , payloadByteList .size ());
118+ assertEquals ("Hello" , new String (payloadByteList .get (0 )));
119+ assertEquals ("Kafka" , new String (payloadByteList .get (1 )));
120+
121+ payloadByteList = generateListFromFileUsingDelimiter ("Hello\t \t Kafka" , "\t " );
122+ assertEquals (3 , payloadByteList .size ());
123+ assertEquals ("Hello" , new String (payloadByteList .get (0 )));
124+ assertEquals ("Kafka" , new String (payloadByteList .get (2 )));
125+
126+ payloadByteList = generateListFromFileUsingDelimiter ("Hello\n \n Kafka\n " , "\n " );
127+ assertEquals (3 , payloadByteList .size ());
128+ assertEquals ("Hello" , new String (payloadByteList .get (0 )));
129+ assertEquals ("Kafka" , new String (payloadByteList .get (2 )));
130+
131+ payloadByteList = generateListFromFileUsingDelimiter ("Hello::Kafka::World" , "\\ s*::\\ s*" );
132+ assertEquals (3 , payloadByteList .size ());
133+ assertEquals ("Hello" , new String (payloadByteList .get (0 )));
134+ assertEquals ("Kafka" , new String (payloadByteList .get (1 )));
135+
136+ }
137+
138+ @ Test
139+ public void testCompareStringSplitWithScannerDelimiter () throws Exception {
140+
141+ String contents = "Hello~~Kafka" ;
142+ String payloadDelimiter = "~~" ;
143+ compareList (generateListFromFileUsingDelimiter (contents , payloadDelimiter ), contents .split (payloadDelimiter ));
144+
145+ contents = "Hello,Kafka," ;
146+ payloadDelimiter = "," ;
147+ compareList (generateListFromFileUsingDelimiter (contents , payloadDelimiter ), contents .split (payloadDelimiter ));
148+
149+ contents = "Hello\t \t Kafka" ;
150+ payloadDelimiter = "\t " ;
151+ compareList (generateListFromFileUsingDelimiter (contents , payloadDelimiter ), contents .split (payloadDelimiter ));
152+
153+ contents = "Hello\n \n Kafka\n " ;
154+ payloadDelimiter = "\n " ;
155+ compareList (generateListFromFileUsingDelimiter (contents , payloadDelimiter ), contents .split (payloadDelimiter ));
156+
157+ contents = "Hello::Kafka::World" ;
158+ payloadDelimiter = "\\ s*::\\ s*" ;
159+ compareList (generateListFromFileUsingDelimiter (contents , payloadDelimiter ), contents .split (payloadDelimiter ));
160+
161+ }
162+
163+ private void compareList (List <byte []> payloadByteList , String [] payloadByteListFromSplit ) {
164+ assertEquals (payloadByteListFromSplit .length , payloadByteList .size ());
165+ for (int i = 0 ; i < payloadByteListFromSplit .length ; i ++) {
166+ assertEquals (payloadByteListFromSplit [i ], new String (payloadByteList .get (i )));
167+ }
168+ }
169+
170+ private List <byte []> generateListFromFileUsingDelimiter (String fileContent , String payloadDelimiter ) throws Exception {
171+ File payloadFile = null ;
172+ List <byte []> payloadByteList ;
173+ try {
174+ payloadFile = createTempFile (fileContent );
175+ payloadByteList = ProducerPerformance .readPayloadFile (payloadFile .getAbsolutePath (), payloadDelimiter );
176+ } finally {
177+ Utils .delete (payloadFile );
178+ }
179+ return payloadByteList ;
180+ }
181+
107182 @ Test
108183 public void testNumberOfCallsForSendAndClose () throws IOException {
109184 doReturn (null ).when (producerMock ).send (any (), any ());
0 commit comments