Skip to content

Commit ad4b8dc

Browse files
committed
完善 SQLite 数据驱动中带序列号的新增测试单元。 🚡
1 parent 81707dc commit ad4b8dc

File tree

2 files changed

+47
-3
lines changed

2 files changed

+47
-3
lines changed

Zongsoft.Data/drivers/sqlite/test/InsertSequenceTest.cs

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,25 @@ public async Task InsertAsync()
3232
Assert.True(await accessor.ExistsAsync<UserModel>(Condition.Equal(nameof(UserModel.UserId), model.UserId)));
3333
}
3434

35+
[Fact]
36+
public async Task InsertWithSequenceValueAsync()
37+
{
38+
if(!Global.IsTestingEnabled)
39+
return;
40+
41+
var accessor = _database.Accessor;
42+
var model = Model.Build<UserModel>(model =>
43+
{
44+
model.UserId = 404;
45+
model.Name = $"${Zongsoft.Common.Randomizer.GenerateString()}";
46+
});
47+
48+
var count = await accessor.InsertAsync(model);
49+
Assert.Equal(1, count);
50+
Assert.Equal(404U, model.UserId);
51+
Assert.True(await accessor.ExistsAsync<UserModel>(Condition.Equal(nameof(UserModel.UserId), model.UserId)));
52+
}
53+
3554
[Fact]
3655
public async Task InsertWithChildrenAsync()
3756
{
@@ -85,6 +104,31 @@ public async Task InsertWithChildrenAsync()
85104
Assert.Equal(MemberType.Role, members[1].MemberType);
86105
}
87106

107+
[Fact]
108+
public async Task InsertManyWithSequenceValueAsync()
109+
{
110+
const int COUNT = 100;
111+
const int OFFSET = 5000;
112+
113+
if(!Global.IsTestingEnabled)
114+
return;
115+
116+
var accessor = _database.Accessor;
117+
var models = Model.Build<UserModel>(COUNT, (model, index) =>
118+
{
119+
model.UserId = (uint)(OFFSET + index);
120+
model.Name = $"${Zongsoft.Common.Randomizer.GenerateString()}_{index}";
121+
}).ToArray();
122+
123+
var count = await accessor.InsertManyAsync(models);
124+
Assert.Equal(COUNT, count);
125+
for(int i = 0; i < models.Length; i++)
126+
Assert.Equal((uint)(OFFSET + i), models[i].UserId);
127+
128+
count = await accessor.CountAsync<UserModel>(Condition.In(nameof(UserModel.UserId), models.Select(model => model.UserId)));
129+
Assert.Equal(COUNT, count);
130+
}
131+
88132
[Fact]
89133
public async Task InsertManyAsync()
90134
{
@@ -133,7 +177,7 @@ public async Task InsertManyWithChildrenAsync()
133177
];
134178
}).ToArray();
135179

136-
var count = await accessor.InsertManyAsync(models, $"*,{nameof(RoleModel.Children)}{{*}}", DataInsertOptions.SuppressSequence());
180+
var count = await accessor.InsertManyAsync(models, $"*,{nameof(RoleModel.Children)}{{*}}");
137181
Assert.Equal(3 * COUNT, count);
138182

139183
for(int i = 0; i < models.Length; i++)

Zongsoft.Data/drivers/sqlite/test/InsertTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@ public async Task InsertWithDepartmentsAsync()
381381
];
382382
});
383383

384-
var count = await accessor.InsertAsync(model, $"*,{nameof(model.Departments)}{{*}}", DataInsertOptions.SuppressSequence());
384+
var count = await accessor.InsertAsync(model, $"*,{nameof(model.Departments)}{{*}}");
385385
Assert.Equal(3, count);
386386
Assert.NotNull(model.Departments);
387387
Assert.NotEmpty(model.Departments);
@@ -735,7 +735,7 @@ public async Task InsertManyWithDepartmentsAsync()
735735
];
736736
}).ToArray();
737737

738-
var count = await accessor.InsertManyAsync(models, $"*,{nameof(Branch.Departments)}{{*}}", DataInsertOptions.SuppressSequence());
738+
var count = await accessor.InsertManyAsync(models, $"*,{nameof(Branch.Departments)}{{*}}");
739739
Assert.Equal(3 * COUNT, count);
740740

741741
foreach(var model in models)

0 commit comments

Comments
 (0)