Skip to content

Commit cd26087

Browse files
committed
BulkMergeTests
1 parent 606ba67 commit cd26087

File tree

2 files changed

+118
-100
lines changed

2 files changed

+118
-100
lines changed

src/EntityFrameworkCore.SqlServer.SimpleBulks.DbContextExtensionsTests/DbContextExtensions/BulkMergeAsyncTests.cs

Lines changed: 61 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,11 @@ await _context.BulkInsertAsync(compositeKeyRows,
5353
}
5454

5555
[Theory]
56-
[InlineData(1)]
57-
[InlineData(100)]
58-
public async Task BulkMerge_Using_Linq_With_Transaction(int length)
56+
[InlineData(0, 1)]
57+
[InlineData(1, 0)]
58+
[InlineData(1, 1)]
59+
[InlineData(100, 100)]
60+
public async Task BulkMerge_Using_Linq_With_Transaction(int length, int insertLength)
5961
{
6062
await SeedData(length);
6163

@@ -80,28 +82,28 @@ public async Task BulkMerge_Using_Linq_With_Transaction(int length)
8082
row.SeasonAsString = Season.Spring;
8183
}
8284

83-
rows.Add(new SingleKeyRow<int>
85+
for (int i = length; i < length + insertLength; i++)
8486
{
85-
Column1 = length,
86-
Column2 = "Inserted using Merge" + length,
87-
Column3 = DateTime.Now,
88-
Season = Season.Summer,
89-
SeasonAsString = Season.Summer
90-
});
91-
92-
var newId1 = length;
93-
var newId2 = length;
87+
rows.Add(new SingleKeyRow<int>
88+
{
89+
Column1 = i,
90+
Column2 = "Inserted using Merge" + i,
91+
Column3 = DateTime.Now,
92+
Season = Season.Summer,
93+
SeasonAsString = Season.Summer
94+
});
9495

95-
compositeKeyRows.Add(new CompositeKeyRow<int, int>
96-
{
97-
Id1 = newId1,
98-
Id2 = newId2,
99-
Column1 = newId2,
100-
Column2 = "Inserted using Merge" + newId2,
101-
Column3 = DateTime.Now,
102-
Season = Season.Summer,
103-
SeasonAsString = Season.Summer
104-
});
96+
compositeKeyRows.Add(new CompositeKeyRow<int, int>
97+
{
98+
Id1 = i,
99+
Id2 = i,
100+
Column1 = i,
101+
Column2 = "Inserted using Merge" + i,
102+
Column3 = DateTime.Now,
103+
Season = Season.Summer,
104+
SeasonAsString = Season.Summer
105+
});
106+
}
105107

106108
await _context.BulkMergeAsync(rows,
107109
row => row.Id,
@@ -128,7 +130,7 @@ await _context.BulkMergeAsync(compositeKeyRows,
128130
var dbRows = _context.SingleKeyRows.AsNoTracking().ToList();
129131
var dbCompositeKeyRows = _context.CompositeKeyRows.AsNoTracking().ToList();
130132

131-
for (var i = 0; i < length + 1; i++)
133+
for (var i = 0; i < length + insertLength; i++)
132134
{
133135
Assert.Equal(rows[i].Id, dbRows[i].Id);
134136
Assert.Equal(rows[i].Column1, dbRows[i].Column1);
@@ -148,9 +150,11 @@ await _context.BulkMergeAsync(compositeKeyRows,
148150
}
149151

150152
[Theory]
151-
[InlineData(1)]
152-
[InlineData(100)]
153-
public async Task BulkMerge_Using_Dynamic_String_With_Transaction(int length)
153+
[InlineData(0, 1)]
154+
[InlineData(1, 0)]
155+
[InlineData(1, 1)]
156+
[InlineData(100, 100)]
157+
public async Task BulkMerge_Using_Dynamic_String_With_Transaction(int length, int insertLength)
154158
{
155159
await SeedData(length);
156160

@@ -163,40 +167,40 @@ public async Task BulkMerge_Using_Dynamic_String_With_Transaction(int length)
163167
{
164168
row.Column2 = "abc";
165169
row.Column3 = DateTime.Now;
166-
row.Season = Season.Autumn;
167-
row.SeasonAsString = Season.Autumn;
170+
row.Season = Season.Spring;
171+
row.SeasonAsString = Season.Spring;
168172
}
169173

170174
foreach (var row in compositeKeyRows)
171175
{
172176
row.Column2 = "abc";
173177
row.Column3 = DateTime.Now;
174-
row.Season = Season.Autumn;
175-
row.SeasonAsString = Season.Autumn;
178+
row.Season = Season.Spring;
179+
row.SeasonAsString = Season.Spring;
176180
}
177181

178-
rows.Add(new SingleKeyRow<int>
182+
for (int i = length; i < length + insertLength; i++)
179183
{
180-
Column1 = length,
181-
Column2 = "Inserted using Merge" + length,
182-
Column3 = DateTime.Now,
183-
Season = Season.Summer,
184-
SeasonAsString = Season.Summer
185-
});
186-
187-
var newId1 = length;
188-
var newId2 = length;
184+
rows.Add(new SingleKeyRow<int>
185+
{
186+
Column1 = i,
187+
Column2 = "Inserted using Merge" + i,
188+
Column3 = DateTime.Now,
189+
Season = Season.Summer,
190+
SeasonAsString = Season.Summer
191+
});
189192

190-
compositeKeyRows.Add(new CompositeKeyRow<int, int>
191-
{
192-
Id1 = newId1,
193-
Id2 = newId2,
194-
Column1 = newId2,
195-
Column2 = "Inserted using Merge" + newId2,
196-
Column3 = DateTime.Now,
197-
Season = Season.Summer,
198-
SeasonAsString = Season.Summer
199-
});
193+
compositeKeyRows.Add(new CompositeKeyRow<int, int>
194+
{
195+
Id1 = i,
196+
Id2 = i,
197+
Column1 = i,
198+
Column2 = "Inserted using Merge" + i,
199+
Column3 = DateTime.Now,
200+
Season = Season.Summer,
201+
SeasonAsString = Season.Summer
202+
});
203+
}
200204

201205
await _context.BulkMergeAsync(rows,
202206
"Id",
@@ -222,7 +226,7 @@ await _context.BulkMergeAsync(compositeKeyRows,
222226
var dbRows = _context.SingleKeyRows.AsNoTracking().ToList();
223227
var dbCompositeKeyRows = _context.CompositeKeyRows.AsNoTracking().ToList();
224228

225-
for (var i = 0; i < length + 1; i++)
229+
for (var i = 0; i < length + insertLength; i++)
226230
{
227231
Assert.Equal(rows[i].Id, dbRows[i].Id);
228232
Assert.Equal(rows[i].Column1, dbRows[i].Column1);
@@ -242,6 +246,7 @@ await _context.BulkMergeAsync(compositeKeyRows,
242246
}
243247

244248
[Theory]
249+
[InlineData(0)]
245250
[InlineData(1)]
246251
[InlineData(100)]
247252
public async Task BulkMerge_ReturnDbGeneratedId_True(int length)
@@ -309,6 +314,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
309314
}
310315

311316
[Theory]
317+
[InlineData(0)]
312318
[InlineData(1)]
313319
[InlineData(100)]
314320
public async Task BulkMerge_ReturnDbGeneratedId_False(int length)
@@ -388,6 +394,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
388394
}
389395

390396
[Theory]
397+
[InlineData(0)]
391398
[InlineData(1)]
392399
[InlineData(100)]
393400
public async Task BulkMerge_UpdateOnly(int length)
@@ -456,6 +463,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
456463
}
457464

458465
[Theory]
466+
[InlineData(0)]
459467
[InlineData(1)]
460468
[InlineData(100)]
461469
public async Task BulkMerge_InsertOnly(int length)
@@ -534,6 +542,7 @@ await _context.BulkInsertAsync(configurationEntries, options =>
534542
}
535543

536544
[Theory]
545+
[InlineData(0)]
537546
[InlineData(1)]
538547
[InlineData(100)]
539548
public async Task BulkMerge_DoNothing(int length)

src/EntityFrameworkCore.SqlServer.SimpleBulks.DbContextExtensionsTests/DbContextExtensions/BulkMergeTests.cs

Lines changed: 57 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,11 @@ private void SeedData(int length)
5353
}
5454

5555
[Theory]
56-
[InlineData(1)]
57-
[InlineData(100)]
58-
public void BulkMerge_Using_Linq_With_Transaction(int length)
56+
[InlineData(0, 1)]
57+
[InlineData(1, 0)]
58+
[InlineData(1, 1)]
59+
[InlineData(100, 100)]
60+
public void BulkMerge_Using_Linq_With_Transaction(int length, int insertLength)
5961
{
6062
SeedData(length);
6163

@@ -80,28 +82,28 @@ public void BulkMerge_Using_Linq_With_Transaction(int length)
8082
row.SeasonAsString = Season.Spring;
8183
}
8284

83-
rows.Add(new SingleKeyRow<int>
85+
for (int i = length; i < length + insertLength; i++)
8486
{
85-
Column1 = length,
86-
Column2 = "Inserted using Merge" + length,
87-
Column3 = DateTime.Now,
88-
Season = Season.Summer,
89-
SeasonAsString = Season.Summer
90-
});
91-
92-
var newId1 = length;
93-
var newId2 = length;
87+
rows.Add(new SingleKeyRow<int>
88+
{
89+
Column1 = i,
90+
Column2 = "Inserted using Merge" + i,
91+
Column3 = DateTime.Now,
92+
Season = Season.Summer,
93+
SeasonAsString = Season.Summer
94+
});
9495

95-
compositeKeyRows.Add(new CompositeKeyRow<int, int>
96-
{
97-
Id1 = newId1,
98-
Id2 = newId2,
99-
Column1 = newId2,
100-
Column2 = "Inserted using Merge" + newId2,
101-
Column3 = DateTime.Now,
102-
Season = Season.Summer,
103-
SeasonAsString = Season.Summer
104-
});
96+
compositeKeyRows.Add(new CompositeKeyRow<int, int>
97+
{
98+
Id1 = i,
99+
Id2 = i,
100+
Column1 = i,
101+
Column2 = "Inserted using Merge" + i,
102+
Column3 = DateTime.Now,
103+
Season = Season.Summer,
104+
SeasonAsString = Season.Summer
105+
});
106+
}
105107

106108
_context.BulkMerge(rows,
107109
row => row.Id,
@@ -128,7 +130,7 @@ public void BulkMerge_Using_Linq_With_Transaction(int length)
128130
var dbRows = _context.SingleKeyRows.AsNoTracking().ToList();
129131
var dbCompositeKeyRows = _context.CompositeKeyRows.AsNoTracking().ToList();
130132

131-
for (int i = 0; i < length + 1; i++)
133+
for (int i = 0; i < length + insertLength; i++)
132134
{
133135
Assert.Equal(rows[i].Id, dbRows[i].Id);
134136
Assert.Equal(rows[i].Column1, dbRows[i].Column1);
@@ -148,9 +150,11 @@ public void BulkMerge_Using_Linq_With_Transaction(int length)
148150
}
149151

150152
[Theory]
151-
[InlineData(1)]
152-
[InlineData(100)]
153-
public void BulkMerge_Using_Dynamic_String_With_Transaction(int length)
153+
[InlineData(0, 1)]
154+
[InlineData(1, 0)]
155+
[InlineData(1, 1)]
156+
[InlineData(100, 100)]
157+
public void BulkMerge_Using_Dynamic_String_With_Transaction(int length, int insertLength)
154158
{
155159
SeedData(length);
156160

@@ -175,28 +179,28 @@ public void BulkMerge_Using_Dynamic_String_With_Transaction(int length)
175179
row.SeasonAsString = Season.Autumn;
176180
}
177181

178-
rows.Add(new SingleKeyRow<int>
182+
for (int i = length; i < length + insertLength; i++)
179183
{
180-
Column1 = length,
181-
Column2 = "Inserted using Merge" + length,
182-
Column3 = DateTime.Now,
183-
Season = Season.Summer,
184-
SeasonAsString = Season.Summer
185-
});
186-
187-
var newId1 = length;
188-
var newId2 = length;
184+
rows.Add(new SingleKeyRow<int>
185+
{
186+
Column1 = i,
187+
Column2 = "Inserted using Merge" + i,
188+
Column3 = DateTime.Now,
189+
Season = Season.Summer,
190+
SeasonAsString = Season.Summer
191+
});
189192

190-
compositeKeyRows.Add(new CompositeKeyRow<int, int>
191-
{
192-
Id1 = newId1,
193-
Id2 = newId2,
194-
Column1 = newId2,
195-
Column2 = "Inserted using Merge" + newId2,
196-
Column3 = DateTime.Now,
197-
Season = Season.Summer,
198-
SeasonAsString = Season.Summer
199-
});
193+
compositeKeyRows.Add(new CompositeKeyRow<int, int>
194+
{
195+
Id1 = i,
196+
Id2 = i,
197+
Column1 = i,
198+
Column2 = "Inserted using Merge" + i,
199+
Column3 = DateTime.Now,
200+
Season = Season.Summer,
201+
SeasonAsString = Season.Summer
202+
});
203+
}
200204

201205
_context.BulkMerge(rows,
202206
"Id",
@@ -222,7 +226,7 @@ public void BulkMerge_Using_Dynamic_String_With_Transaction(int length)
222226
var dbRows = _context.SingleKeyRows.AsNoTracking().ToList();
223227
var dbCompositeKeyRows = _context.CompositeKeyRows.AsNoTracking().ToList();
224228

225-
for (int i = 0; i < length + 1; i++)
229+
for (int i = 0; i < length + insertLength; i++)
226230
{
227231
Assert.Equal(rows[i].Id, dbRows[i].Id);
228232
Assert.Equal(rows[i].Column1, dbRows[i].Column1);
@@ -242,6 +246,7 @@ public void BulkMerge_Using_Dynamic_String_With_Transaction(int length)
242246
}
243247

244248
[Theory]
249+
[InlineData(0)]
245250
[InlineData(1)]
246251
[InlineData(100)]
247252
public void BulkMerge_ReturnDbGeneratedId_True(int length)
@@ -309,6 +314,7 @@ public void BulkMerge_ReturnDbGeneratedId_True(int length)
309314
}
310315

311316
[Theory]
317+
[InlineData(0)]
312318
[InlineData(1)]
313319
[InlineData(100)]
314320
public void BulkMerge_ReturnDbGeneratedId_False(int length)
@@ -388,6 +394,7 @@ public void BulkMerge_ReturnDbGeneratedId_False(int length)
388394
}
389395

390396
[Theory]
397+
[InlineData(0)]
391398
[InlineData(1)]
392399
[InlineData(100)]
393400
public void BulkMerge_UpdateOnly(int length)
@@ -456,6 +463,7 @@ public void BulkMerge_UpdateOnly(int length)
456463
}
457464

458465
[Theory]
466+
[InlineData(0)]
459467
[InlineData(1)]
460468
[InlineData(100)]
461469
public void BulkMerge_InsertOnly(int length)
@@ -534,6 +542,7 @@ public void BulkMerge_InsertOnly(int length)
534542
}
535543

536544
[Theory]
545+
[InlineData(0)]
537546
[InlineData(1)]
538547
[InlineData(100)]
539548
public void BulkMerge_DoNothing(int length)

0 commit comments

Comments
 (0)