private void DoUploadFromByteArrayTest(ICloudBlob blob, int bufferSize, int bufferOffset, int count, bool isAsync) { byte[] buffer = GetRandomBuffer(bufferSize); byte[] downloadedBuffer = new byte[bufferSize]; int downloadLength; if (isAsync) { IAsyncResult result; using (AutoResetEvent waitHandle = new AutoResetEvent(false)) { result = blob.BeginUploadFromByteArray(buffer, bufferOffset, count, ar => waitHandle.Set(), null); waitHandle.WaitOne(); blob.EndUploadFromByteArray(result); result = blob.BeginDownloadToByteArray(downloadedBuffer, 0, ar => waitHandle.Set(), null); waitHandle.WaitOne(); downloadLength = blob.EndDownloadToByteArray(result); } } else { blob.UploadFromByteArray(buffer, bufferOffset, count); downloadLength = blob.DownloadToByteArray(downloadedBuffer, 0); } Assert.AreEqual(count, downloadLength); for (int i = 0; i < count; i++) { Assert.AreEqual(buffer[i + bufferOffset], downloadedBuffer[i]); } }