Skip to content

Commit 3b6d174

Browse files
committed
update test
1 parent f8dfbdb commit 3b6d174

File tree

3 files changed

+22
-131
lines changed

3 files changed

+22
-131
lines changed

src/Extensions/AzureBlobPayloads/DependencyInjection/DurableTaskClientBuilderExtensions.AzureBlobPayloads.cs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,6 @@ namespace Microsoft.DurableTask;
1616
/// </summary>
1717
public static class DurableTaskClientBuilderExtensionsAzureBlobPayloads
1818
{
19-
/// <summary>
20-
/// Enables externalized payload storage using Azure Blob Storage for the specified client builder.
21-
/// </summary>
22-
/// <param name="builder">The builder to configure.</param>
23-
/// <param name="configure">The callback to configure the storage options.</param>
24-
/// <returns>The original builder, for call chaining.</returns>
25-
public static IDurableTaskClientBuilder UseExternalizedPayloads(
26-
this IDurableTaskClientBuilder builder,
27-
Action<LargePayloadStorageOptions> configure)
28-
{
29-
Check.NotNull(builder);
30-
Check.NotNull(configure);
31-
32-
builder.Services.Configure(builder.Name, configure);
33-
builder.Services.AddSingleton<IPayloadStore>(sp =>
34-
{
35-
LargePayloadStorageOptions opts = sp.GetRequiredService<IOptionsMonitor<LargePayloadStorageOptions>>().Get(builder.Name);
36-
return new BlobPayloadStore(opts);
37-
});
38-
39-
return UseExternalizedPayloadsCore(builder);
40-
}
41-
4219
/// <summary>
4320
/// Enables externalized payload storage using a pre-configured shared payload store.
4421
/// This overload helps ensure client and worker use the same configuration.

src/Extensions/AzureBlobPayloads/Interceptors/AzureBlobPayloadsManagedBackendInterceptor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
using Grpc.Core.Interceptors;
55

6-
using P = Microsoft.DurableTask.AzureManagedBackend.Protobuf;
6+
using P = Microsoft.DurableTask.Protobuf;
77

88
namespace Microsoft.DurableTask;
99

test/Grpc.IntegrationTests/LargePayloadTests.cs

Lines changed: 21 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System.Text.Json;
55
using Microsoft.DurableTask.Client;
6+
using Microsoft.DurableTask;
67
using Microsoft.DurableTask.Converters;
78
using Microsoft.DurableTask.Worker;
89
using Microsoft.Extensions.DependencyInjection;
@@ -32,26 +33,20 @@ public async Task LargeOrchestrationInputAndOutputAndCustomStatus()
3233
return Task.FromResult(input + input);
3334
}));
3435

35-
// Enable externalization on the worker
36-
worker.UseExternalizedPayloads(opts =>
37-
{
38-
opts.ExternalizeThresholdBytes = 1024; // small threshold to force externalization for test data
39-
opts.ContainerName = "test";
40-
opts.ConnectionString = "UseDevelopmentStorage=true";
41-
});
36+
worker.UseExternalizedPayloads();
4237

43-
// Override store with in-memory test double
4438
worker.Services.AddSingleton<IPayloadStore>(fakeStore);
4539
},
4640
client =>
4741
{
48-
// Enable externalization on the client
49-
client.UseExternalizedPayloads(opts =>
42+
// Enable externalization on the client (shared store configuration)
43+
client.Services.AddExternalizedPayloadStore(opts =>
5044
{
5145
opts.ExternalizeThresholdBytes = 1024;
5246
opts.ContainerName = "test";
5347
opts.ConnectionString = "UseDevelopmentStorage=true";
5448
});
49+
client.UseExternalizedPayloads();
5550

5651
// Override store with in-memory test double
5752
client.Services.AddSingleton<IPayloadStore>(fakeStore);
@@ -114,23 +109,12 @@ public async Task HistoryStreaming_ResolvesPayloads()
114109
return largeOutput;
115110
}));
116111

117-
worker.UseExternalizedPayloads(opts =>
118-
{
119-
opts.ExternalizeThresholdBytes = 1024;
120-
opts.ContainerName = "test";
121-
opts.ConnectionString = "UseDevelopmentStorage=true";
122-
});
112+
worker.UseExternalizedPayloads();
123113
worker.Services.AddSingleton<IPayloadStore>(store);
124114
},
125115
client =>
126116
{
127-
// Enable client to resolve outputs on query
128-
client.UseExternalizedPayloads(opts =>
129-
{
130-
opts.ExternalizeThresholdBytes = 1024;
131-
opts.ContainerName = "test";
132-
opts.ConnectionString = "UseDevelopmentStorage=true";
133-
});
117+
client.UseExternalizedPayloads();
134118
client.Services.AddSingleton<IPayloadStore>(store);
135119
});
136120

@@ -171,12 +155,7 @@ public async Task SuspendAndResume_Reason_IsExternalizedByClient()
171155
client =>
172156
{
173157
// Enable externalization on the client and use the in-memory store to track uploads
174-
client.UseExternalizedPayloads(opts =>
175-
{
176-
opts.ExternalizeThresholdBytes = 1024; // 1KB threshold to force externalization
177-
opts.ContainerName = "test";
178-
opts.ConnectionString = "UseDevelopmentStorage=true";
179-
});
158+
client.UseExternalizedPayloads();
180159
client.Services.AddSingleton<IPayloadStore>(clientStore);
181160
});
182161

@@ -253,22 +232,12 @@ public async Task LargeTerminateWithPayload()
253232
return null;
254233
}));
255234

256-
worker.UseExternalizedPayloads(opts =>
257-
{
258-
opts.ExternalizeThresholdBytes = 1024;
259-
opts.ContainerName = "test";
260-
opts.ConnectionString = "UseDevelopmentStorage=true";
261-
});
235+
worker.UseExternalizedPayloads();
262236
worker.Services.AddSingleton<IPayloadStore>(store);
263237
},
264238
client =>
265239
{
266-
client.UseExternalizedPayloads(opts =>
267-
{
268-
opts.ExternalizeThresholdBytes = 1024;
269-
opts.ContainerName = "test";
270-
opts.ConnectionString = "UseDevelopmentStorage=true";
271-
});
240+
client.UseExternalizedPayloads();
272241
client.Services.AddSingleton<IPayloadStore>(store);
273242
});
274243

@@ -318,22 +287,12 @@ public async Task LargeContinueAsNewAndCustomStatus()
318287
}
319288
}));
320289

321-
worker.UseExternalizedPayloads(opts =>
322-
{
323-
opts.ExternalizeThresholdBytes = 1024;
324-
opts.ContainerName = "test";
325-
opts.ConnectionString = "UseDevelopmentStorage=true";
326-
});
290+
worker.UseExternalizedPayloads();
327291
worker.Services.AddSingleton<IPayloadStore>(workerStore);
328292
},
329293
client =>
330294
{
331-
client.UseExternalizedPayloads(opts =>
332-
{
333-
opts.ExternalizeThresholdBytes = 1024;
334-
opts.ContainerName = "test";
335-
opts.ConnectionString = "UseDevelopmentStorage=true";
336-
});
295+
client.UseExternalizedPayloads();
337296
client.Services.AddSingleton<IPayloadStore>(workerStore);
338297
});
339298

@@ -376,22 +335,12 @@ public async Task LargeSubOrchestrationAndActivityOutput()
376335
.AddOrchestratorFunc<string, string>(child, (ctx, input) => Task.FromResult(input))
377336
.AddActivityFunc<string>(activity, (ctx) => Task.FromResult(largeActivityOutput)));
378337

379-
worker.UseExternalizedPayloads(opts =>
380-
{
381-
opts.ExternalizeThresholdBytes = 1024;
382-
opts.ContainerName = "test";
383-
opts.ConnectionString = "UseDevelopmentStorage=true";
384-
});
338+
worker.UseExternalizedPayloads();
385339
worker.Services.AddSingleton<IPayloadStore>(workerStore);
386340
},
387341
client =>
388342
{
389-
client.UseExternalizedPayloads(opts =>
390-
{
391-
opts.ExternalizeThresholdBytes = 1024;
392-
opts.ContainerName = "test";
393-
opts.ConnectionString = "UseDevelopmentStorage=true";
394-
});
343+
client.UseExternalizedPayloads();
395344
client.Services.AddSingleton<IPayloadStore>(workerStore);
396345
});
397346

@@ -425,22 +374,12 @@ public async Task LargeQueryFetchInputsAndOutputs()
425374
orch,
426375
(ctx, input) => Task.FromResult(largeOut)));
427376

428-
worker.UseExternalizedPayloads(opts =>
429-
{
430-
opts.ExternalizeThresholdBytes = 1024;
431-
opts.ContainerName = "test";
432-
opts.ConnectionString = "UseDevelopmentStorage=true";
433-
});
377+
worker.UseExternalizedPayloads();
434378
worker.Services.AddSingleton<IPayloadStore>(workerStore);
435379
},
436380
client =>
437381
{
438-
client.UseExternalizedPayloads(opts =>
439-
{
440-
opts.ExternalizeThresholdBytes = 1024;
441-
opts.ContainerName = "test";
442-
opts.ConnectionString = "UseDevelopmentStorage=true";
443-
});
382+
client.UseExternalizedPayloads();
444383
client.Services.AddSingleton<IPayloadStore>(workerStore);
445384
});
446385

@@ -484,12 +423,7 @@ public async Task LargeActivityInputAndOutput()
484423
(ctx, _) => ctx.CallActivityAsync<string>(activityName, largeParam))
485424
.AddActivityFunc<string, string>(activityName, (ctx, input) => input + input));
486425

487-
worker.UseExternalizedPayloads(opts =>
488-
{
489-
opts.ExternalizeThresholdBytes = 1024; // force externalization for activity input
490-
opts.ContainerName = "test";
491-
opts.ConnectionString = "UseDevelopmentStorage=true";
492-
});
426+
worker.UseExternalizedPayloads();
493427
worker.Services.AddSingleton<IPayloadStore>(workerStore);
494428
},
495429
client => { /* client not needed for externalization path here */ });
@@ -529,22 +463,12 @@ public async Task NoLargePayloads()
529463
orchestratorName,
530464
(ctx, input) => Task.FromResult(input)));
531465

532-
worker.UseExternalizedPayloads(opts =>
533-
{
534-
opts.ExternalizeThresholdBytes = 2 * 1024 * 1024; // 2MB, higher than payload
535-
opts.ContainerName = "test";
536-
opts.ConnectionString = "UseDevelopmentStorage=true";
537-
});
466+
worker.UseExternalizedPayloads();
538467
worker.Services.AddSingleton<IPayloadStore>(workerStore);
539468
},
540469
client =>
541470
{
542-
client.UseExternalizedPayloads(opts =>
543-
{
544-
opts.ExternalizeThresholdBytes = 2 * 1024 * 1024; // 2MB, higher than payload
545-
opts.ContainerName = "test";
546-
opts.ConnectionString = "UseDevelopmentStorage=true";
547-
});
471+
client.UseExternalizedPayloads();
548472
client.Services.AddSingleton<IPayloadStore>(clientStore);
549473
});
550474

@@ -578,22 +502,12 @@ public async Task LargeExternalEvent()
578502
orchestratorName,
579503
async ctx => await ctx.WaitForExternalEvent<string>(EventName)));
580504

581-
worker.UseExternalizedPayloads(opts =>
582-
{
583-
opts.ExternalizeThresholdBytes = 1024; // force externalization
584-
opts.ContainerName = "test";
585-
opts.ConnectionString = "UseDevelopmentStorage=true";
586-
});
505+
worker.UseExternalizedPayloads();
587506
worker.Services.AddSingleton<IPayloadStore>(fakeStore);
588507
},
589508
client =>
590509
{
591-
client.UseExternalizedPayloads(opts =>
592-
{
593-
opts.ExternalizeThresholdBytes = 1024; // force externalization
594-
opts.ContainerName = "test";
595-
opts.ConnectionString = "UseDevelopmentStorage=true";
596-
});
510+
client.UseExternalizedPayloads();
597511
client.Services.AddSingleton<IPayloadStore>(fakeStore);
598512
});
599513

0 commit comments

Comments
 (0)