Skip to content

Commit d79be96

Browse files
[Storage][DataMovement] Add tests for TransferProgressTracker as well as minor changes (Azure#47894)
1 parent 6d8cf4a commit d79be96

16 files changed

+305
-47
lines changed

sdk/storage/Azure.Storage.DataMovement.Blobs/samples/Sample01b_HelloWorldAsync.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,8 +1168,12 @@ async Task<TransferOperation> ListenToProgressAsync(TransferManager transferMana
11681168
{
11691169
TransferOptions transferOptions = new()
11701170
{
1171-
// optionally include the below if progress updates on bytes transferred are desired
1172-
ProgressHandlerOptions = new(progress, trackBytesTransferred: true)
1171+
ProgressHandlerOptions = new()
1172+
{
1173+
ProgressHandler = progress,
1174+
// optionally include the below if progress updates on bytes transferred are desired
1175+
TrackBytesTransferred = true,
1176+
}
11731177
};
11741178
return await transferManager.StartTransferAsync(
11751179
source,

sdk/storage/Azure.Storage.DataMovement.Blobs/tests/Azure.Storage.DataMovement.Blobs.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
<Compile Include="$(AzureStorageDataMovementTestSharedSources)DataMovementTestBase.cs" LinkBase="Shared\DataMovement" />
5555
<Compile Include="$(AzureStorageDataMovementTestSharedSources)TransferDirection.cs" LinkBase="Shared\DataMovement" />
5656
<Compile Include="$(AzureStorageDataMovementTestSharedSources)TransferValidator.Local.cs" LinkBase="Shared\DataMovement" />
57+
<Compile Include="$(AzureStorageDataMovementTestSharedSources)TestProgressHandler.cs" LinkBase="Shared\DataMovement" />
5758
</ItemGroup>
5859
<ItemGroup>
5960
<Content Include="Resources\**">

sdk/storage/Azure.Storage.DataMovement.Blobs/tests/ProgressHandlerTests.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,12 @@ private async Task TransferAndAssertProgress(
130130

131131
TestProgressHandler progressHandler = new TestProgressHandler();
132132
transferOptions ??= new TransferOptions();
133-
transferOptions.ProgressHandlerOptions = new ProgressHandlerOptions(progressHandler, trackBytes);
133+
transferOptions.ProgressHandlerOptions = new()
134+
{
135+
ProgressHandler = progressHandler,
136+
TrackBytesTransferred = trackBytes
137+
}
138+
;
134139
transferOptions.CreationPreference = createMode;
135140

136141
TransferOperation transfer = await transferManager.StartTransferAsync(source, destination, transferOptions);
@@ -323,7 +328,11 @@ public async Task ProgressHandler_PauseResume(int delayInMs)
323328
TestProgressHandler progressHandler = new();
324329
TransferOptions transferOptions = new()
325330
{
326-
ProgressHandlerOptions = new ProgressHandlerOptions(progressHandler, true)
331+
ProgressHandlerOptions = new()
332+
{
333+
ProgressHandler = progressHandler,
334+
TrackBytesTransferred = true
335+
}
327336
};
328337
TestEventsRaised testEventsRaised = new(transferOptions);
329338

sdk/storage/Azure.Storage.DataMovement/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
- `DataTransferState` -> `TransferState`
1717
- `DataTransferStatus` -> `TransferStatus`
1818
- `DataTransferErrorMode` -> `TransferErrorMode`
19+
- `ProgressHandlerOptions` -> `TransferProgressHandlerOptions`
20+
- Also removed the constructor since properties are settable.
1921
- `StorageResourceCheckpointData` -> `StorageResourceCheckpointDetails`
2022
- `StorageResource.GetDestinationCheckpointData` -> `StorageResource.GetDestinationCheckpointDetails`
2123
- `StorageResource.GetSourceCheckpointData` -> `StorageResource.GetSourceCheckpointDetails`

sdk/storage/Azure.Storage.DataMovement/README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,8 +208,12 @@ async Task<TransferOperation> ListenToProgressAsync(TransferManager transferMana
208208
{
209209
TransferOptions transferOptions = new()
210210
{
211-
// optionally include the below if progress updates on bytes transferred are desired
212-
ProgressHandlerOptions = new(progress, trackBytesTransferred: true)
211+
ProgressHandlerOptions = new()
212+
{
213+
ProgressHandler = progress,
214+
// optionally include the below if progress updates on bytes transferred are desired
215+
TrackBytesTransferred = true,
216+
}
213217
};
214218
return await transferManager.StartTransferAsync(
215219
source,

sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.net6.0.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,6 @@ public LocalFilesStorageResourceProvider() { }
2727
public Azure.Storage.DataMovement.StorageResourceItem FromFile(string filePath) { throw null; }
2828
protected internal override System.Threading.Tasks.Task<Azure.Storage.DataMovement.StorageResource> FromSourceAsync(Azure.Storage.DataMovement.TransferProperties properties, System.Threading.CancellationToken cancellationToken) { throw null; }
2929
}
30-
public partial class ProgressHandlerOptions
31-
{
32-
public ProgressHandlerOptions(System.IProgress<Azure.Storage.DataMovement.TransferProgress> progressHandler, bool trackBytesTransferred = false) { }
33-
public System.IProgress<Azure.Storage.DataMovement.TransferProgress> ProgressHandler { get { throw null; } set { } }
34-
public bool TrackBytesTransferred { get { throw null; } set { } }
35-
}
3630
public abstract partial class StorageResource
3731
{
3832
protected StorageResource() { }
@@ -201,7 +195,7 @@ public TransferOptions() { }
201195
public Azure.Storage.DataMovement.StorageResourceCreationMode CreationPreference { get { throw null; } set { } }
202196
public long? InitialTransferSize { get { throw null; } set { } }
203197
public long? MaximumTransferChunkSize { get { throw null; } set { } }
204-
public Azure.Storage.DataMovement.ProgressHandlerOptions ProgressHandlerOptions { get { throw null; } set { } }
198+
public Azure.Storage.DataMovement.TransferProgressHandlerOptions ProgressHandlerOptions { get { throw null; } set { } }
205199
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemCompletedEventArgs> ItemTransferCompleted { add { } remove { } }
206200
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemFailedEventArgs> ItemTransferFailed { add { } remove { } }
207201
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemSkippedEventArgs> ItemTransferSkipped { add { } remove { } }
@@ -232,6 +226,12 @@ internal TransferProgress() { }
232226
public long QueuedCount { get { throw null; } }
233227
public long SkippedCount { get { throw null; } }
234228
}
229+
public partial class TransferProgressHandlerOptions
230+
{
231+
public TransferProgressHandlerOptions() { }
232+
public System.IProgress<Azure.Storage.DataMovement.TransferProgress> ProgressHandler { get { throw null; } set { } }
233+
public bool TrackBytesTransferred { get { throw null; } set { } }
234+
}
235235
public partial class TransferProperties
236236
{
237237
protected internal TransferProperties() { }

sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.net8.0.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,6 @@ public LocalFilesStorageResourceProvider() { }
2727
public Azure.Storage.DataMovement.StorageResourceItem FromFile(string filePath) { throw null; }
2828
protected internal override System.Threading.Tasks.Task<Azure.Storage.DataMovement.StorageResource> FromSourceAsync(Azure.Storage.DataMovement.TransferProperties properties, System.Threading.CancellationToken cancellationToken) { throw null; }
2929
}
30-
public partial class ProgressHandlerOptions
31-
{
32-
public ProgressHandlerOptions(System.IProgress<Azure.Storage.DataMovement.TransferProgress> progressHandler, bool trackBytesTransferred = false) { }
33-
public System.IProgress<Azure.Storage.DataMovement.TransferProgress> ProgressHandler { get { throw null; } set { } }
34-
public bool TrackBytesTransferred { get { throw null; } set { } }
35-
}
3630
public abstract partial class StorageResource
3731
{
3832
protected StorageResource() { }
@@ -201,7 +195,7 @@ public TransferOptions() { }
201195
public Azure.Storage.DataMovement.StorageResourceCreationMode CreationPreference { get { throw null; } set { } }
202196
public long? InitialTransferSize { get { throw null; } set { } }
203197
public long? MaximumTransferChunkSize { get { throw null; } set { } }
204-
public Azure.Storage.DataMovement.ProgressHandlerOptions ProgressHandlerOptions { get { throw null; } set { } }
198+
public Azure.Storage.DataMovement.TransferProgressHandlerOptions ProgressHandlerOptions { get { throw null; } set { } }
205199
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemCompletedEventArgs> ItemTransferCompleted { add { } remove { } }
206200
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemFailedEventArgs> ItemTransferFailed { add { } remove { } }
207201
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemSkippedEventArgs> ItemTransferSkipped { add { } remove { } }
@@ -232,6 +226,12 @@ internal TransferProgress() { }
232226
public long QueuedCount { get { throw null; } }
233227
public long SkippedCount { get { throw null; } }
234228
}
229+
public partial class TransferProgressHandlerOptions
230+
{
231+
public TransferProgressHandlerOptions() { }
232+
public System.IProgress<Azure.Storage.DataMovement.TransferProgress> ProgressHandler { get { throw null; } set { } }
233+
public bool TrackBytesTransferred { get { throw null; } set { } }
234+
}
235235
public partial class TransferProperties
236236
{
237237
protected internal TransferProperties() { }

sdk/storage/Azure.Storage.DataMovement/api/Azure.Storage.DataMovement.netstandard2.0.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,6 @@ public LocalFilesStorageResourceProvider() { }
2727
public Azure.Storage.DataMovement.StorageResourceItem FromFile(string filePath) { throw null; }
2828
protected internal override System.Threading.Tasks.Task<Azure.Storage.DataMovement.StorageResource> FromSourceAsync(Azure.Storage.DataMovement.TransferProperties properties, System.Threading.CancellationToken cancellationToken) { throw null; }
2929
}
30-
public partial class ProgressHandlerOptions
31-
{
32-
public ProgressHandlerOptions(System.IProgress<Azure.Storage.DataMovement.TransferProgress> progressHandler, bool trackBytesTransferred = false) { }
33-
public System.IProgress<Azure.Storage.DataMovement.TransferProgress> ProgressHandler { get { throw null; } set { } }
34-
public bool TrackBytesTransferred { get { throw null; } set { } }
35-
}
3630
public abstract partial class StorageResource
3731
{
3832
protected StorageResource() { }
@@ -201,7 +195,7 @@ public TransferOptions() { }
201195
public Azure.Storage.DataMovement.StorageResourceCreationMode CreationPreference { get { throw null; } set { } }
202196
public long? InitialTransferSize { get { throw null; } set { } }
203197
public long? MaximumTransferChunkSize { get { throw null; } set { } }
204-
public Azure.Storage.DataMovement.ProgressHandlerOptions ProgressHandlerOptions { get { throw null; } set { } }
198+
public Azure.Storage.DataMovement.TransferProgressHandlerOptions ProgressHandlerOptions { get { throw null; } set { } }
205199
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemCompletedEventArgs> ItemTransferCompleted { add { } remove { } }
206200
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemFailedEventArgs> ItemTransferFailed { add { } remove { } }
207201
public event Azure.Core.SyncAsyncEventHandler<Azure.Storage.DataMovement.TransferItemSkippedEventArgs> ItemTransferSkipped { add { } remove { } }
@@ -232,6 +226,12 @@ internal TransferProgress() { }
232226
public long QueuedCount { get { throw null; } }
233227
public long SkippedCount { get { throw null; } }
234228
}
229+
public partial class TransferProgressHandlerOptions
230+
{
231+
public TransferProgressHandlerOptions() { }
232+
public System.IProgress<Azure.Storage.DataMovement.TransferProgress> ProgressHandler { get { throw null; } set { } }
233+
public bool TrackBytesTransferred { get { throw null; } set { } }
234+
}
235235
public partial class TransferProperties
236236
{
237237
protected internal TransferProperties() { }

sdk/storage/Azure.Storage.DataMovement/src/JobPartInternal.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ await PartTransferStatusEventHandler.RaiseAsync(
308308

309309
protected async ValueTask ReportBytesWrittenAsync(long bytesTransferred)
310310
{
311-
await _progressTracker.IncrementBytesTransferred(bytesTransferred, _cancellationToken).ConfigureAwait(false);
311+
await _progressTracker.IncrementBytesTransferredAsync(bytesTransferred, _cancellationToken).ConfigureAwait(false);
312312
}
313313

314314
public async virtual Task InvokeSingleCompletedArgAsync()

sdk/storage/Azure.Storage.DataMovement/src/TransferOptions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public class TransferOptions : IEquatable<TransferOptions>
4040
/// <summary>
4141
/// Optional. Options for changing behavior of the ProgressHandler.
4242
/// </summary>
43-
public ProgressHandlerOptions ProgressHandlerOptions { get; set; }
43+
public TransferProgressHandlerOptions ProgressHandlerOptions { get; set; }
4444

4545
/// <summary>
4646
/// Check if two ParallelTransferOptions instances are equal.

0 commit comments

Comments
 (0)