Skip to content

Commit 53ada34

Browse files
committed
Add the ability to mock TransactWrite and MultiTableTransactWrite operations (#3436)
1 parent 722ab88 commit 53ada34

File tree

10 files changed

+380
-293
lines changed

10 files changed

+380
-293
lines changed

sdk/src/Services/DynamoDBv2/Custom/DataModel/Context.cs

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -326,52 +326,30 @@ public IMultiTableTransactGet CreateMultiTableTransactGet(params ITransactGet[]
326326

327327
#region TransactWrite
328328

329-
/// <summary>
330-
/// Creates a strongly-typed TransactWrite object, allowing
331-
/// a transactional write operation against DynamoDB.
332-
/// </summary>
333-
/// <typeparam name="T">Type of objects to write.</typeparam>
334-
/// <returns>Empty strongly-typed TransactWrite object.</returns>
335-
public TransactWrite<T> CreateTransactWrite<T>()
329+
/// <inheritdoc/>
330+
public ITransactWrite<T> CreateTransactWrite<T>()
336331
{
337332
return CreateTransactWrite<T>((TransactWriteConfig)null);
338333
}
339334

340-
/// <summary>
341-
/// Creates a strongly-typed TransactWrite object, allowing
342-
/// a transactional write operation against DynamoDB.
343-
/// </summary>
344-
/// <typeparam name="T">Type of objects to write.</typeparam>
345-
/// <param name="operationConfig">Config object which can be used to override that table used.</param>
346-
/// <returns>Empty strongly-typed TransactWrite object.</returns>
335+
/// <inheritdoc/>
347336

348337
[Obsolete("Use the CreateTransactWrite overload that takes TransactWriteConfig instead, since DynamoDBOperationConfig contains properties that are not applicable to CreateTransactWrite.")]
349-
public TransactWrite<T> CreateTransactWrite<T>(DynamoDBOperationConfig operationConfig)
338+
public ITransactWrite<T> CreateTransactWrite<T>(DynamoDBOperationConfig operationConfig)
350339
{
351340
DynamoDBFlatConfig config = new DynamoDBFlatConfig(operationConfig, this.Config);
352341
return new TransactWrite<T>(this, config);
353342
}
354343

355-
/// <summary>
356-
/// Creates a strongly-typed TransactWrite object, allowing
357-
/// a transactional write operation against DynamoDB.
358-
/// </summary>
359-
/// <typeparam name="T">Type of objects to write.</typeparam>
360-
/// <param name="transactWriteConfig">Config object that can be used to override properties on the table's context for this request.</param>
361-
/// <returns>Empty strongly-typed TransactWrite object.</returns>
362-
public TransactWrite<T> CreateTransactWrite<T>(TransactWriteConfig transactWriteConfig)
344+
/// <inheritdoc/>
345+
public ITransactWrite<T> CreateTransactWrite<T>(TransactWriteConfig transactWriteConfig)
363346
{
364347
DynamoDBFlatConfig config = new DynamoDBFlatConfig(transactWriteConfig?.ToDynamoDBOperationConfig(), this.Config);
365348
return new TransactWrite<T>(this, config);
366349
}
367350

368-
/// <summary>
369-
/// Creates a MultiTableTransactWrite object, composed of multiple
370-
/// individual TransactWrite objects.
371-
/// </summary>
372-
/// <param name="transactionParts">Individual TransactWrite objects.</param>
373-
/// <returns>Composite MultiTableTransactWrite object.</returns>
374-
public MultiTableTransactWrite CreateMultiTableTransactWrite(params TransactWrite[] transactionParts)
351+
/// <inheritdoc/>
352+
public IMultiTableTransactWrite CreateMultiTableTransactWrite(params ITransactWrite[] transactionParts)
375353
{
376354
return new MultiTableTransactWrite(transactionParts);
377355
}

sdk/src/Services/DynamoDBv2/Custom/DataModel/IDynamoDBContext.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,7 @@ public partial interface IDynamoDBContext : IDisposable
316316
/// </summary>
317317
/// <typeparam name="T">Type of objects to write.</typeparam>
318318
/// <returns>Empty strongly-typed TransactWrite object.</returns>
319-
TransactWrite<T> CreateTransactWrite<T>();
319+
ITransactWrite<T> CreateTransactWrite<T>();
320320

321321
/// <summary>
322322
/// Creates a strongly-typed TransactWrite object, allowing
@@ -326,7 +326,7 @@ public partial interface IDynamoDBContext : IDisposable
326326
/// <param name="operationConfig">Config object which can be used to override that table used.</param>
327327
/// <returns>Empty strongly-typed TransactWrite object.</returns>
328328
[Obsolete("Use the CreateTransactWrite overload that takes TransactWriteConfig instead, since DynamoDBOperationConfig contains properties that are not applicable to CreateTransactWrite.")]
329-
TransactWrite<T> CreateTransactWrite<T>(DynamoDBOperationConfig operationConfig = null);
329+
ITransactWrite<T> CreateTransactWrite<T>(DynamoDBOperationConfig operationConfig = null);
330330

331331
/// <summary>
332332
/// Creates a strongly-typed TransactWrite object, allowing
@@ -335,15 +335,15 @@ public partial interface IDynamoDBContext : IDisposable
335335
/// <typeparam name="T">Type of objects to write.</typeparam>
336336
/// <param name="transactWriteConfig">Config object that can be used to override properties on the table's context for this request.</param>
337337
/// <returns>Empty strongly-typed TransactWrite object.</returns>
338-
TransactWrite<T> CreateTransactWrite<T>(TransactWriteConfig transactWriteConfig);
338+
ITransactWrite<T> CreateTransactWrite<T>(TransactWriteConfig transactWriteConfig);
339339

340340
/// <summary>
341341
/// Creates a MultiTableTransactWrite object, composed of multiple
342342
/// individual TransactWrite objects.
343343
/// </summary>
344344
/// <param name="transactionParts">Individual TransactWrite objects.</param>
345345
/// <returns>Composite MultiTableTransactWrite object.</returns>
346-
MultiTableTransactWrite CreateMultiTableTransactWrite(params TransactWrite[] transactionParts);
346+
IMultiTableTransactWrite CreateMultiTableTransactWrite(params ITransactWrite[] transactionParts);
347347

348348
#endregion
349349
}

0 commit comments

Comments
 (0)