@@ -163,17 +163,7 @@ public override async Task<DaprJobDetails> GetJobAsync(string jobName, Cancellat
163
163
var envelope = new Autogenerated . GetJobRequest { Name = jobName } ;
164
164
var grpcCallOptions = DaprClientUtilities . ConfigureGrpcCallOptions ( typeof ( DaprJobsClient ) . Assembly , this . DaprApiToken , cancellationToken ) ;
165
165
var response = await Client . GetJobAlpha1Async ( envelope , grpcCallOptions ) ;
166
- var schedule = DateTime . TryParse ( response . Job . DueTime , out var dueTime )
167
- ? DaprJobSchedule . FromDateTime ( dueTime )
168
- : new DaprJobSchedule ( response . Job . Schedule ) ;
169
-
170
- return new DaprJobDetails ( schedule )
171
- {
172
- DueTime = ! string . IsNullOrWhiteSpace ( response . Job . DueTime ) ? DateTime . Parse ( response . Job . DueTime ) : null ,
173
- Ttl = ! string . IsNullOrWhiteSpace ( response . Job . Ttl ) ? DateTime . Parse ( response . Job . Ttl ) : null ,
174
- RepeatCount = ( int ? ) response . Job . Repeats ,
175
- Payload = response . Job . Data . ToByteArray ( )
176
- } ;
166
+ return DeserializeJobResponse ( response ) ;
177
167
}
178
168
catch ( OperationCanceledException ) when ( cancellationToken . IsCancellationRequested )
179
169
{
@@ -192,6 +182,29 @@ public override async Task<DaprJobDetails> GetJobAsync(string jobName, Cancellat
192
182
throw new DaprException ( "Get job operation failed: the Dapr endpoint did not return the expected value." ) ;
193
183
}
194
184
185
+ /// <summary>
186
+ /// Testable method for performing job response deserialization.
187
+ /// </summary>
188
+ /// <remarks>
189
+ /// This is exposed strictly for testing purposes.
190
+ /// </remarks>
191
+ /// <param name="response">The job response to deserialize.</param>
192
+ /// <returns>The deserialized job response.</returns>
193
+ internal static DaprJobDetails DeserializeJobResponse ( Autogenerated . GetJobResponse response )
194
+ {
195
+ var schedule = DateTime . TryParse ( response . Job . DueTime , out var dueTime )
196
+ ? DaprJobSchedule . FromDateTime ( dueTime )
197
+ : new DaprJobSchedule ( response . Job . Schedule ) ;
198
+
199
+ return new DaprJobDetails ( schedule )
200
+ {
201
+ DueTime = ! string . IsNullOrWhiteSpace ( response . Job . DueTime ) ? DateTime . Parse ( response . Job . DueTime ) : null ,
202
+ Ttl = ! string . IsNullOrWhiteSpace ( response . Job . Ttl ) ? DateTime . Parse ( response . Job . Ttl ) : null ,
203
+ RepeatCount = ( int ? ) response . Job . Repeats ?? 0 ,
204
+ Payload = response . Job . Data ? . ToByteArray ( ) ?? null
205
+ } ;
206
+ }
207
+
195
208
/// <summary>
196
209
/// Deletes the specified job.
197
210
/// </summary>
0 commit comments