[#79] AppDbContext: Use compiled queries
This commit is contained in:
@@ -10,19 +10,19 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
|
||||
private static async Task InitViewModel(DeliveryAdminViewModel vm) {
|
||||
using var ctx = new AppDbContext();
|
||||
vm.MemberSource = await ctx.Members.ToListAsync();
|
||||
vm.BranchSource = await ctx.Branches.ToListAsync();
|
||||
vm.WineVarSource = await ctx.WineVarieties.ToListAsync();
|
||||
List<object> attrs = (await ctx.WineAttributes.ToListAsync()).Cast<object>().ToList();
|
||||
vm.MemberSource = await ctx.FetchMembers(includeNotActive: true).ToListAsync();
|
||||
vm.BranchSource = await ctx.FetchBranches().ToListAsync();
|
||||
vm.WineVarSource = await ctx.FetchWineVarieties().ToListAsync();
|
||||
List<object> attrs = await ctx.FetchWineAttributes().Cast<object>().ToListAsync();
|
||||
attrs.Insert(0, new NullItem());
|
||||
vm.WineAttrSource = attrs;
|
||||
List<object> cults = (await ctx.WineCultivations.ToListAsync()).Cast<object>().ToList();
|
||||
List<object> cults = await ctx.FetchWineCultivations().Cast<object>().ToListAsync();
|
||||
cults.Insert(0, new NullItem());
|
||||
vm.WineCultSource = cults;
|
||||
vm.WineQualityLevelSource = await ctx.WineQualityLevels.ToListAsync();
|
||||
vm.WineQualityLevelSource = await ctx.FetchWineQualityLevels().ToListAsync();
|
||||
vm.WineOriginSource = await ctx.WineOrigins.ToListAsync();
|
||||
vm.WineKgSource = await ctx.Katastralgemeinden.ToListAsync();
|
||||
vm.ModifiersSource = await ctx.Modifiers.Where(m => m.Year == 2022).ToListAsync();
|
||||
vm.ModifiersSource = await ctx.FetchModifiers(2022).ToListAsync();
|
||||
}
|
||||
|
||||
private static async Task<Delivery?> GetDelivery(string lsnr) {
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
|
||||
private static async Task InitViewModel(MemberAdminViewModel vm) {
|
||||
using var ctx = new AppDbContext();
|
||||
vm.BranchSource = await ctx.Branches.ToListAsync();
|
||||
vm.BranchSource = await ctx.FetchBranches().ToListAsync();
|
||||
vm.DefaultKgSource = await ctx.Katastralgemeinden.ToListAsync();
|
||||
vm.OrtSource = await ctx.PlzDestinations.ToListAsync();
|
||||
vm.BillingOrtSource = await ctx.PlzDestinations.ToListAsync();
|
||||
@@ -31,18 +31,14 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
|
||||
Assert.That(vm.MgNr, Is.EqualTo(205));
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Members.FindAsync(205), Is.Null);
|
||||
Assert.That(await ctx.FetchMembers(205, includeNotActive: true).SingleOrDefaultAsync(), Is.Null);
|
||||
}
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
|
||||
|
||||
Member m;
|
||||
using (var ctx = new AppDbContext()) {
|
||||
m = await ctx.Members
|
||||
.Where(m => m.MgNr == vm.MgNr)
|
||||
.Include(m => m.EmailAddresses)
|
||||
.Include(m => m.TelephoneNumbers)
|
||||
.SingleAsync();
|
||||
m = await ctx.FetchMembers(vm.MgNr, includeNotActive: true, includeContactInfo: true).SingleAsync();
|
||||
}
|
||||
|
||||
Assert.That(m, Is.Not.Null);
|
||||
@@ -115,18 +111,14 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
vm.IsFunktionär = true;
|
||||
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Members.FindAsync(999), Is.Null);
|
||||
Assert.That(await ctx.FetchMembers(999, includeNotActive: true).SingleOrDefaultAsync(), Is.Null);
|
||||
}
|
||||
|
||||
Assert.DoesNotThrowAsync(async () => await vm.UpdateMember(null));
|
||||
|
||||
Member m;
|
||||
using (var ctx = new AppDbContext()) {
|
||||
m = await ctx.Members
|
||||
.Where(m => m.MgNr == vm.MgNr)
|
||||
.Include(m => m.EmailAddresses)
|
||||
.Include(m => m.TelephoneNumbers)
|
||||
.SingleAsync();
|
||||
m = await ctx.FetchMembers(vm.MgNr, includeNotActive: true, includeContactInfo: true).SingleAsync();
|
||||
}
|
||||
|
||||
Assert.That(m, Is.Not.Null);
|
||||
@@ -226,11 +218,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
var vm = new MemberAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
using (var ctx = new AppDbContext()) {
|
||||
vm.FillInputs(await ctx.Members
|
||||
.Where(m => m.MgNr == 202)
|
||||
.Include(m => m.EmailAddresses)
|
||||
.Include(m => m.TelephoneNumbers)
|
||||
.SingleAsync());
|
||||
vm.FillInputs(await ctx.FetchMembers(202, includeNotActive: true, includeContactInfo: true).SingleAsync());
|
||||
}
|
||||
|
||||
Assert.That(vm.IsActive, Is.True);
|
||||
@@ -243,11 +231,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
|
||||
Member m;
|
||||
using (var ctx = new AppDbContext()) {
|
||||
m = await ctx.Members
|
||||
.Where(m => m.MgNr == 202)
|
||||
.Include(m => m.EmailAddresses)
|
||||
.Include(m => m.TelephoneNumbers)
|
||||
.SingleAsync();
|
||||
m = await ctx.FetchMembers(202, includeNotActive: true, includeContactInfo: true).SingleAsync();
|
||||
}
|
||||
|
||||
Assert.That(m, Is.Not.Null);
|
||||
@@ -270,11 +254,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
var vm = new MemberAdminViewModel();
|
||||
await InitViewModel(vm);
|
||||
using (var ctx = new AppDbContext()) {
|
||||
vm.FillInputs(await ctx.Members
|
||||
.Where(m => m.MgNr == 203)
|
||||
.Include(m => m.EmailAddresses)
|
||||
.Include(m => m.TelephoneNumbers)
|
||||
.SingleAsync());
|
||||
vm.FillInputs(await ctx.FetchMembers(203, includeNotActive: true, includeContactInfo: true).SingleAsync());
|
||||
}
|
||||
|
||||
Assert.Multiple(() => {
|
||||
@@ -288,11 +268,7 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
|
||||
Member m;
|
||||
using (var ctx = new AppDbContext()) {
|
||||
m = await ctx.Members
|
||||
.Where(m => m.MgNr == 210)
|
||||
.Include(m => m.EmailAddresses)
|
||||
.Include(m => m.TelephoneNumbers)
|
||||
.SingleAsync();
|
||||
m = await ctx.FetchMembers(210, includeNotActive: true, includeContactInfo: true).SingleAsync();
|
||||
}
|
||||
|
||||
Assert.That(m, Is.Not.Null);
|
||||
@@ -310,27 +286,27 @@ namespace Tests.UnitTests.ServiceTests {
|
||||
[Test]
|
||||
public async Task TestDelete_01_NoReferences() {
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Members.FindAsync(201), Is.Not.Null);
|
||||
Assert.That(await ctx.FetchMembers(201, includeNotActive: true).SingleOrDefaultAsync(), Is.Not.Null);
|
||||
}
|
||||
Assert.DoesNotThrowAsync(async () => await MemberService.DeleteMember(201, false, false, false));
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Members.FindAsync(201), Is.Null);
|
||||
Assert.That(await ctx.FetchMembers(201, includeNotActive: true).SingleOrDefaultAsync(), Is.Null);
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestDelete_02_AllReferences() {
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Members.FindAsync(204), Is.Not.Null);
|
||||
Assert.That(await ctx.FetchMembers(204, includeNotActive: true).SingleOrDefaultAsync(), Is.Not.Null);
|
||||
}
|
||||
for (int i = 0; i < 7; i++) {
|
||||
Assert.ThrowsAsync<DbUpdateException>(async () => await MemberService.DeleteMember(204, (i & 1) != 0, (i & 2) != 0, (i & 4) != 0));
|
||||
using var ctx = new AppDbContext();
|
||||
Assert.That(await ctx.Members.FindAsync(204), Is.Not.Null);
|
||||
Assert.That(await ctx.FetchMembers(204, includeNotActive: true).SingleOrDefaultAsync(), Is.Not.Null);
|
||||
}
|
||||
Assert.DoesNotThrowAsync(async () => await MemberService.DeleteMember(204, true, true, true));
|
||||
using (var ctx = new AppDbContext()) {
|
||||
Assert.That(await ctx.Members.FindAsync(204), Is.Null);
|
||||
Assert.That(await ctx.FetchMembers(204, includeNotActive: true).SingleOrDefaultAsync(), Is.Null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user