@@ -316,6 +316,13 @@ private class TestEntity
316316 public string Name { get ; set ; }
317317 }
318318
319+ private static IReadOnlyList < IReadOnlyDictionary < string , object ? > > ToDicts ( IEnumerable < TestEntity > rows )
320+ => rows . Select ( x => ( IReadOnlyDictionary < string , object ? > ) new Dictionary < string , object ? >
321+ {
322+ [ "Id" ] = x . Id ,
323+ [ "Name" ] = x . Name
324+ } ) . ToList ( ) ;
325+
319326 [ Fact ]
320327 public async Task BulkUpsert_HappyPath_C ( )
321328 {
@@ -329,11 +336,11 @@ public async Task BulkUpsert_HappyPath_C()
329336 await using ( var createCmd = conn . CreateCommand ( ) )
330337 {
331338 createCmd . CommandText = $@ "
332- CREATE TABLE { tableName } (
333- Id Int32,
334- Name Utf8,
335- PRIMARY KEY (Id)
336- )" ;
339+ CREATE TABLE { tableName } (
340+ Id Int32,
341+ Name Utf8,
342+ PRIMARY KEY (Id)
343+ )";
337344 await createCmd . ExecuteNonQueryAsync ( ) ;
338345 }
339346
@@ -344,8 +351,7 @@ PRIMARY KEY (Id)
344351 . ToList ( ) ;
345352
346353 var columns = new [ ] { "Id" , "Name" } ;
347-
348- await conn . BulkUpsertWithRetry ( absTablePath , rows , columns , default ) ;
354+ await conn . BulkUpsertAsync ( absTablePath , columns , ToDicts ( rows ) ) ;
349355
350356 await using ( var checkCmd = conn . CreateCommand ( ) )
351357 {
@@ -374,11 +380,11 @@ public async Task BulkUpsert_InsertsNewRows_С()
374380 await using ( var createCmd = conn . CreateCommand ( ) )
375381 {
376382 createCmd . CommandText = $@ "
377- CREATE TABLE { tableName } (
378- Id Int32,
379- Name Utf8,
380- PRIMARY KEY (Id)
381- )" ;
383+ CREATE TABLE { tableName } (
384+ Id Int32,
385+ Name Utf8,
386+ PRIMARY KEY (Id)
387+ )";
382388 await createCmd . ExecuteNonQueryAsync ( ) ;
383389 }
384390
@@ -391,14 +397,14 @@ PRIMARY KEY (Id)
391397 new ( ) { Id = 1 , Name = "Alice" } ,
392398 new ( ) { Id = 2 , Name = "Bob" }
393399 } ;
394- await conn . BulkUpsertWithRetry ( absTablePath , firstRows , columns , default ) ;
400+ await conn . BulkUpsertAsync ( absTablePath , columns , ToDicts ( firstRows ) ) ;
395401
396402 var newRows = new List < TestEntity >
397403 {
398404 new ( ) { Id = 3 , Name = "Charlie" } ,
399405 new ( ) { Id = 4 , Name = "Diana" }
400406 } ;
401- await conn . BulkUpsertWithRetry ( absTablePath , newRows , columns , default ) ;
407+ await conn . BulkUpsertAsync ( absTablePath , columns , ToDicts ( newRows ) ) ;
402408
403409 await using ( var selectCmd = conn . CreateCommand ( ) )
404410 {
@@ -437,11 +443,11 @@ public async Task BulkUpsert_UpdatesExistingRows_С()
437443 await using ( var createCmd = conn . CreateCommand ( ) )
438444 {
439445 createCmd . CommandText = $@ "
440- CREATE TABLE { tableName } (
441- Id Int32,
442- Name Utf8,
443- PRIMARY KEY (Id)
444- )" ;
446+ CREATE TABLE { tableName } (
447+ Id Int32,
448+ Name Utf8,
449+ PRIMARY KEY (Id)
450+ )";
445451 await createCmd . ExecuteNonQueryAsync ( ) ;
446452 }
447453
@@ -450,15 +456,15 @@ PRIMARY KEY (Id)
450456 var columns = new [ ] { "Id" , "Name" } ;
451457
452458 var row = new TestEntity { Id = 1 , Name = "Alice" } ;
453- await conn . BulkUpsertWithRetry ( absTablePath , new [ ] { row } , columns , default ) ;
459+ await conn . BulkUpsertAsync ( absTablePath , columns , ToDicts ( [ row ] ) ) ;
454460
455461 var updated = new TestEntity { Id = 1 , Name = "Alice Updated" } ;
456- await conn . BulkUpsertWithRetry ( absTablePath , new [ ] { updated } , columns , default ) ;
462+ await conn . BulkUpsertAsync ( absTablePath , columns , ToDicts ( [ updated ] ) ) ;
457463
458464 await using ( var selectCmd = conn . CreateCommand ( ) )
459465 {
460466 selectCmd . CommandText = $ "SELECT Name FROM { tableName } WHERE Id = 1;";
461- var name = ( string ) ( await selectCmd . ExecuteScalarAsync ( ) ) ! ;
467+ var name = await selectCmd . ExecuteScalarAsync ( ) as string ;
462468 Assert . Equal ( "Alice Updated" , name ) ;
463469 }
464470
@@ -468,5 +474,4 @@ PRIMARY KEY (Id)
468474 await dropCmd . ExecuteNonQueryAsync ( ) ;
469475 }
470476 }
471-
472477}
0 commit comments