Skip to content

Commit e73306c

Browse files
committed
adding progress reporter tests to blob tests
1 parent d8bfb58 commit e73306c

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

sdk/storage/azure-storage-blob/src/test/java/com/azure/storage/blob/contentValidation/BlobMessageEncoderUploadTests.java

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.azure.core.http.rest.Response;
77
import com.azure.core.util.BinaryData;
88
import com.azure.core.util.Context;
9+
import com.azure.core.util.ProgressListener;
910
import com.azure.storage.blob.BlobClient;
1011
import com.azure.storage.blob.BlobTestBase;
1112
import com.azure.storage.blob.models.BlockBlobItem;
@@ -30,6 +31,7 @@
3031
import static org.junit.jupiter.api.Assertions.assertEquals;
3132
import static org.junit.jupiter.api.Assertions.assertNotNull;
3233
import static org.junit.jupiter.api.Assertions.assertNull;
34+
import static org.junit.jupiter.api.Assertions.assertTrue;
3335

3436
@LiveOnly
3537
public class BlobMessageEncoderUploadTests extends BlobTestBase {
@@ -86,6 +88,44 @@ public void uploadBinaryDataChunkedStructMess() {
8688
assertArrayEquals(data, outStream.toByteArray());
8789
}
8890

91+
@Test
92+
public void uploadBinaryDataChunkedStructMessProgressListener() {
93+
long size = Constants.MB * 10;
94+
byte[] data = getRandomByteArray((int) size);
95+
long blockSize = (long) Constants.MB * 2;
96+
97+
Listener uploadListenerChecksum = new Listener(blockSize);
98+
99+
Listener uploadListenerNoChecksum = new Listener(blockSize);
100+
101+
BlobParallelUploadOptions optionsChecksum = new BlobParallelUploadOptions(BinaryData.fromBytes(data))
102+
.setStorageChecksumAlgorithm(StorageChecksumAlgorithm.AUTO)
103+
.setParallelTransferOptions(
104+
new ParallelTransferOptions().setMaxSingleUploadSizeLong((long) Constants.MB * 2)
105+
.setBlockSizeLong(blockSize)
106+
.setProgressListener(uploadListenerChecksum));
107+
108+
BlobParallelUploadOptions optionsNoChecksum = new BlobParallelUploadOptions(BinaryData.fromBytes(data))
109+
.setStorageChecksumAlgorithm(StorageChecksumAlgorithm.AUTO)
110+
.setParallelTransferOptions(
111+
new ParallelTransferOptions().setMaxSingleUploadSizeLong((long) Constants.MB * 2)
112+
.setBlockSizeLong(blockSize)
113+
.setProgressListener(uploadListenerNoChecksum));
114+
115+
bc.uploadWithResponse(optionsChecksum, null, Context.NONE);
116+
bc.uploadWithResponse(optionsNoChecksum, null, Context.NONE);
117+
118+
assertTrue(uploadListenerChecksum.getReportingCount() >= (size / blockSize));
119+
assertTrue(uploadListenerNoChecksum.getReportingCount() >= (size / blockSize));
120+
121+
assertEquals(uploadListenerNoChecksum.getReportingCount(), uploadListenerChecksum.getReportingCount());
122+
assertEquals(uploadListenerNoChecksum.getReportedByteCount(), uploadListenerChecksum.getReportedByteCount());
123+
124+
System.out.println(
125+
uploadListenerChecksum.getReportingCount() + " " + uploadListenerChecksum.getReportedByteCount() + " "
126+
+ uploadListenerNoChecksum.getReportingCount() + " " + uploadListenerNoChecksum.getReportedByteCount());
127+
}
128+
89129
@Test
90130
public void uploadInputStreamFullCRCHeader() {
91131
BlobParallelUploadOptions options = new BlobParallelUploadOptions(DATA.getDefaultInputStream())
@@ -178,4 +218,29 @@ public void uploadFluxChunkedStructMess() {
178218

179219
assertArrayEquals(data, outStream.toByteArray());
180220
}
221+
222+
static class Listener implements ProgressListener {
223+
private final long blockSize;
224+
private long reportingCount;
225+
private long reportedByteCount;
226+
227+
Listener(long blockSize) {
228+
this.blockSize = blockSize;
229+
}
230+
231+
@Override
232+
public void handleProgress(long bytesTransferred) {
233+
assertEquals(0, bytesTransferred % blockSize);
234+
this.reportingCount += 1;
235+
this.reportedByteCount = bytesTransferred;
236+
}
237+
238+
long getReportingCount() {
239+
return this.reportingCount;
240+
}
241+
242+
long getReportedByteCount() {
243+
return this.reportedByteCount;
244+
}
245+
}
181246
}

0 commit comments

Comments
 (0)