@@ -143,13 +143,19 @@ class BlobBaseAPITest extends APISpec {
143
143
@Retry (count = 5 , delay = 5 , condition = { env.testMode == TestMode .LIVE })
144
144
def " Query csv serialization separator" () {
145
145
setup :
146
- BlobQueryDelimitedSerialization ser = new BlobQueryDelimitedSerialization ()
146
+ BlobQueryDelimitedSerialization serIn = new BlobQueryDelimitedSerialization ()
147
147
.setRecordSeparator(recordSeparator as char )
148
148
.setColumnSeparator(columnSeparator as char )
149
149
.setEscapeChar(' \0 ' as char )
150
150
.setFieldQuote(' \0 ' as char )
151
- .setHeadersPresent(headersPresent)
152
- uploadCsv(ser, 32 )
151
+ .setHeadersPresent(headersPresentIn)
152
+ BlobQueryDelimitedSerialization serOut = new BlobQueryDelimitedSerialization ()
153
+ .setRecordSeparator(recordSeparator as char )
154
+ .setColumnSeparator(columnSeparator as char )
155
+ .setEscapeChar(' \0 ' as char )
156
+ .setFieldQuote(' \0 ' as char )
157
+ .setHeadersPresent(headersPresentOut)
158
+ uploadCsv(serIn, 32 )
153
159
def expression = " SELECT * from BlobStorage"
154
160
155
161
ByteArrayOutputStream downloadData = new ByteArrayOutputStream ()
@@ -158,12 +164,12 @@ class BlobBaseAPITest extends APISpec {
158
164
159
165
/* Input Stream. */
160
166
when :
161
- InputStream qqStream = bc. openQueryInputStreamWithResponse(new BlobQueryOptions (expression). setInputSerialization(ser ). setOutputSerialization(ser )). getValue()
167
+ InputStream qqStream = bc. openQueryInputStreamWithResponse(new BlobQueryOptions (expression). setInputSerialization(serIn ). setOutputSerialization(serOut )). getValue()
162
168
byte [] queryData = readFromInputStream(qqStream, downloadedData. length)
163
169
164
170
then :
165
171
notThrown(IOException )
166
- if (headersPresent ) {
172
+ if (headersPresentIn && ! headersPresentOut ) {
167
173
/* Account for 16 bytes of header. */
168
174
for (int j = 16 ; j < downloadedData. length; j++ ) {
169
175
assert queryData[j - 16 ] == downloadedData[j]
@@ -179,12 +185,12 @@ class BlobBaseAPITest extends APISpec {
179
185
when :
180
186
OutputStream os = new ByteArrayOutputStream ()
181
187
bc. queryWithResponse(new BlobQueryOptions (expression, os)
182
- .setInputSerialization(ser ). setOutputSerialization(ser ), null , null )
188
+ .setInputSerialization(serIn ). setOutputSerialization(serOut ), null , null )
183
189
byte [] osData = os. toByteArray()
184
190
185
191
then :
186
192
notThrown(BlobStorageException )
187
- if (headersPresent ) {
193
+ if (headersPresentIn && ! headersPresentOut ) {
188
194
assert osData. length == downloadedData. length - 16
189
195
/* Account for 16 bytes of header. */
190
196
for (int j = 16 ; j < downloadedData. length; j++ ) {
@@ -195,24 +201,25 @@ class BlobBaseAPITest extends APISpec {
195
201
}
196
202
197
203
where :
198
- recordSeparator | columnSeparator | headersPresent || _
199
- ' \n ' | ' ,' | false || _ /* Default. */
200
- ' \n ' | ' ,' | true || _ /* Headers. */
201
- ' \t ' | ' ,' | false || _ /* Record separator. */
202
- ' \r ' | ' ,' | false || _
203
- ' <' | ' ,' | false || _
204
- ' >' | ' ,' | false || _
205
- ' &' | ' ,' | false || _
206
- ' \\ ' | ' ,' | false || _
207
- ' ,' | ' .' | false || _ /* Column separator. */
208
- // ',' | '\n' | false || _ /* Keep getting a qq error: Field delimiter and record delimiter must be different characters. */
209
- ' ,' | ' ;' | false || _
210
- ' \n ' | ' \t ' | false || _
211
- // '\n' | '\r' | false || _ /* Keep getting a qq error: Field delimiter and record delimiter must be different characters. */
212
- ' \n ' | ' <' | false || _
213
- ' \n ' | ' >' | false || _
214
- ' \n ' | ' &' | false || _
215
- ' \n ' | ' \\ ' | false || _
204
+ recordSeparator | columnSeparator | headersPresentIn | headersPresentOut || _
205
+ ' \n ' | ' ,' | false | false || _ /* Default. */
206
+ ' \n ' | ' ,' | true | true || _ /* Headers. */
207
+ ' \n ' | ' ,' | true | false || _ /* Headers. */
208
+ ' \t ' | ' ,' | false | false || _ /* Record separator. */
209
+ ' \r ' | ' ,' | false | false || _
210
+ ' <' | ' ,' | false | false || _
211
+ ' >' | ' ,' | false | false || _
212
+ ' &' | ' ,' | false | false || _
213
+ ' \\ ' | ' ,' | false | false || _
214
+ ' ,' | ' .' | false | false || _ /* Column separator. */
215
+ // ',' | '\n' | false | false || _ /* Keep getting a qq error: Field delimiter and record delimiter must be different characters. */
216
+ ' ,' | ' ;' | false | false || _
217
+ ' \n ' | ' \t ' | false | false || _
218
+ // '\n' | '\r' | false | false || _ /* Keep getting a qq error: Field delimiter and record delimiter must be different characters. */
219
+ ' \n ' | ' <' | false | false || _
220
+ ' \n ' | ' >' | false | false || _
221
+ ' \n ' | ' &' | false | false || _
222
+ ' \n ' | ' \\ ' | false | false || _
216
223
}
217
224
218
225
@RequiredServiceVersion (clazz = BlobServiceVersion .class, min = " V2019_12_12" )
0 commit comments