Skip to content

Commit 4598c64

Browse files
author
SamuelRe
committed
restructure entire project and rebuild logic.
restructure operationHandlers and switch to nunit and more granular tests
1 parent b9dc948 commit 4598c64

49 files changed

Lines changed: 2632 additions & 1608 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

EntityFrameworkCore.InterfaceSets.Tests/EntityFrameworkCore.InterfaceSets.Tests.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,17 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="coverlet.collector" Version="6.0.0" />
14-
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.*" />
15-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
16-
<PackageReference Include="xunit" Version="2.5.3" />
17-
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.3" />
13+
<PackageReference Include="coverlet.collector" Version="6.0.0"/>
14+
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.*" />
15+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0"/>
16+
<PackageReference Include="NUnit" Version="3.14.0"/>
17+
<PackageReference Include="NUnit.Analyzers" Version="3.9.0"/>
18+
<PackageReference Include="NUnit3TestAdapter" Version="4.5.0"/>
1819
</ItemGroup>
1920

2021
<ItemGroup>
21-
<Using Include="Xunit" />
22+
<Using Include="NUnit.Framework"/>
2223
</ItemGroup>
23-
2424
<ItemGroup>
2525
<ProjectReference Include="..\EntityFrameworkCore.InterfaceSets\EntityFrameworkCore.InterfaceSets.csproj" />
2626
</ItemGroup>
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
using EntityFrameworkCore.InterfaceSets.Tests.Infrastructure;
2+
using EntityFrameworkCore.InterfaceSets.Tests.Model;
3+
using Microsoft.EntityFrameworkCore;
4+
5+
namespace EntityFrameworkCore.InterfaceSets.Tests.Functions;
6+
7+
[TestFixture]
8+
public class AnyTests : InterfaceSetTestBase
9+
{
10+
[Test]
11+
public void Any_Unfiltered_IArchivable_ReturnsTrue()
12+
{
13+
var interfaceSet = Context.InterfaceSet<IArchivable>();
14+
15+
var result = interfaceSet.Any();
16+
17+
Assert.That(result, Is.True);
18+
AssertSqlWasExecuted();
19+
}
20+
21+
[Test]
22+
public void Any_Filtered_IArchivable_WithMatches_ReturnsTrue()
23+
{
24+
var interfaceSet = Context.InterfaceSet<IArchivable>();
25+
26+
var result = interfaceSet.Where(x => x.IsArchived).Any();
27+
28+
Assert.That(result, Is.True);
29+
AssertSqlWasExecuted("IsArchived");
30+
}
31+
32+
[Test]
33+
public void Any_Filtered_IArchivable_NoMatches_ReturnsFalse()
34+
{
35+
var interfaceSet = Context.InterfaceSet<IArchivable>();
36+
37+
var result = interfaceSet.Where(x => x.IsArchived && !x.IsArchived).Any();
38+
39+
Assert.That(result, Is.False);
40+
AssertSqlWasExecuted("IsArchived");
41+
}
42+
43+
[Test]
44+
public void Any_WithPredicate_ISoftDeletable_WithMatches_ReturnsTrue()
45+
{
46+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
47+
48+
var result = interfaceSet.Any(x => x.IsDeleted);
49+
50+
Assert.That(result, Is.True);
51+
AssertSqlWasExecuted("IsDeleted");
52+
}
53+
54+
[Test]
55+
public void Any_WithPredicate_ISoftDeletable_NoMatches_ReturnsFalse()
56+
{
57+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
58+
59+
var result = interfaceSet.Any(x => x.IsDeleted && !x.IsDeleted);
60+
61+
Assert.That(result, Is.False);
62+
AssertSqlWasExecuted("IsDeleted");
63+
}
64+
65+
[Test]
66+
public async Task AnyAsync_Unfiltered_IArchivable_ReturnsTrue()
67+
{
68+
var interfaceSet = Context.InterfaceSet<IArchivable>();
69+
70+
var result = await interfaceSet.AnyAsync();
71+
72+
Assert.That(result, Is.True);
73+
AssertSqlWasExecuted();
74+
}
75+
76+
[Test]
77+
public async Task AnyAsync_Filtered_IArchivable_WithMatches_ReturnsTrue()
78+
{
79+
var interfaceSet = Context.InterfaceSet<IArchivable>();
80+
81+
var result = await interfaceSet.Where(x => x.IsArchived).AnyAsync();
82+
83+
Assert.That(result, Is.True);
84+
AssertSqlWasExecuted("IsArchived");
85+
}
86+
87+
[Test]
88+
public async Task AnyAsync_Filtered_IArchivable_NoMatches_ReturnsFalse()
89+
{
90+
var interfaceSet = Context.InterfaceSet<IArchivable>();
91+
92+
var result = await interfaceSet.Where(x => x.IsArchived && !x.IsArchived).AnyAsync();
93+
94+
Assert.That(result, Is.False);
95+
AssertSqlWasExecuted("IsArchived");
96+
}
97+
98+
[Test]
99+
public async Task AnyAsync_WithPredicate_ISoftDeletable_WithMatches_ReturnsTrue()
100+
{
101+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
102+
103+
var result = await interfaceSet.AnyAsync(x => x.IsDeleted);
104+
105+
Assert.That(result, Is.True);
106+
AssertSqlWasExecuted("IsDeleted");
107+
}
108+
109+
[Test]
110+
public async Task AnyAsync_WithPredicate_ISoftDeletable_NoMatches_ReturnsFalse()
111+
{
112+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
113+
114+
var result = await interfaceSet.AnyAsync(x => x.IsDeleted && !x.IsDeleted);
115+
116+
Assert.That(result, Is.False);
117+
AssertSqlWasExecuted("IsDeleted");
118+
}
119+
}
120+
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
using EntityFrameworkCore.InterfaceSets.Tests.Infrastructure;
2+
using EntityFrameworkCore.InterfaceSets.Tests.Model;
3+
using Microsoft.EntityFrameworkCore;
4+
5+
namespace EntityFrameworkCore.InterfaceSets.Tests.Functions;
6+
7+
[TestFixture]
8+
public class CountTests : InterfaceSetTestBase
9+
{
10+
[Test]
11+
public void Count_Unfiltered_IArchivable_ReturnsCorrectCount()
12+
{
13+
var interfaceSet = Context.InterfaceSet<IArchivable>();
14+
15+
var result = interfaceSet.Count();
16+
17+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.TotalArchivable));
18+
AssertMultipleSqlQueriesExecuted(3);
19+
AssertSqlWasExecuted("COUNT");
20+
}
21+
22+
[Test]
23+
public void Count_Filtered_IArchivable_ReturnsCorrectCount()
24+
{
25+
var interfaceSet = Context.InterfaceSet<IArchivable>();
26+
27+
var result = interfaceSet.Count(x => x.IsArchived);
28+
29+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.ArchivedArchivable));
30+
AssertSqlWasExecuted("COUNT");
31+
AssertSqlWasExecuted("IsArchived");
32+
}
33+
34+
[Test]
35+
public void Count_Unfiltered_ISoftDeletable_ReturnsCorrectCount()
36+
{
37+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
38+
39+
var result = interfaceSet.Count();
40+
41+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.TotalSoftDeletable));
42+
AssertMultipleSqlQueriesExecuted(3);
43+
AssertSqlWasExecuted("COUNT");
44+
}
45+
46+
[Test]
47+
public void Count_Filtered_ISoftDeletable_ReturnsCorrectCount()
48+
{
49+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
50+
51+
var result = interfaceSet.Where(x => x.IsDeleted).Count();
52+
53+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.DeletedSoftDeletable));
54+
AssertSqlWasExecuted("COUNT");
55+
AssertSqlWasExecuted("IsDeleted");
56+
}
57+
58+
[Test]
59+
public void Count_FilteredByNegation_ISoftDeletable_ReturnsCorrectCount()
60+
{
61+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
62+
63+
var result = interfaceSet.Where(x => !x.IsDeleted).Count();
64+
65+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.NonDeletedSoftDeletable));
66+
AssertSqlWasExecuted("COUNT");
67+
AssertSqlWasExecuted("IsDeleted");
68+
}
69+
70+
[Test]
71+
public void Count_FilteredWithPredicate_IArchivable_ReturnsCorrectCount()
72+
{
73+
var interfaceSet = Context.InterfaceSet<IArchivable>();
74+
75+
var result = interfaceSet.Count(x => !x.IsArchived);
76+
77+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.NonArchivedArchivable));
78+
AssertSqlWasExecuted("COUNT");
79+
AssertSqlWasExecuted("IsArchived");
80+
}
81+
82+
[Test]
83+
public async Task CountAsync_Unfiltered_IArchivable_ReturnsCorrectCount()
84+
{
85+
var interfaceSet = Context.InterfaceSet<IArchivable>();
86+
87+
var result = await interfaceSet.CountAsync();
88+
89+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.TotalArchivable));
90+
AssertMultipleSqlQueriesExecuted(3);
91+
AssertSqlWasExecuted("COUNT");
92+
}
93+
94+
[Test]
95+
public async Task CountAsync_Filtered_IArchivable_ReturnsCorrectCount()
96+
{
97+
var interfaceSet = Context.InterfaceSet<IArchivable>();
98+
99+
var result = await interfaceSet.Where(x => x.IsArchived).CountAsync();
100+
101+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.ArchivedArchivable));
102+
AssertSqlWasExecuted("COUNT");
103+
AssertSqlWasExecuted("IsArchived");
104+
}
105+
106+
[Test]
107+
public async Task CountAsync_Unfiltered_ISoftDeletable_ReturnsCorrectCount()
108+
{
109+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
110+
111+
var result = await interfaceSet.CountAsync();
112+
113+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.TotalSoftDeletable));
114+
AssertMultipleSqlQueriesExecuted(3);
115+
AssertSqlWasExecuted("COUNT");
116+
}
117+
118+
[Test]
119+
public async Task CountAsync_Filtered_ISoftDeletable_ReturnsCorrectCount()
120+
{
121+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
122+
123+
var result = await interfaceSet.Where(x => x.IsDeleted).CountAsync();
124+
125+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.DeletedSoftDeletable));
126+
AssertSqlWasExecuted("COUNT");
127+
AssertSqlWasExecuted("IsDeleted");
128+
}
129+
130+
[Test]
131+
public async Task CountAsync_FilteredByNegation_ISoftDeletable_ReturnsCorrectCount()
132+
{
133+
var interfaceSet = Context.InterfaceSet<ISoftDeletable>();
134+
135+
var result = await interfaceSet.Where(x => !x.IsDeleted).CountAsync();
136+
137+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.NonDeletedSoftDeletable));
138+
AssertSqlWasExecuted("COUNT");
139+
AssertSqlWasExecuted("IsDeleted");
140+
}
141+
142+
[Test]
143+
public async Task CountAsync_FilteredWithPredicate_IArchivable_ReturnsCorrectCount()
144+
{
145+
var interfaceSet = Context.InterfaceSet<IArchivable>();
146+
147+
var result = await interfaceSet.CountAsync(x => !x.IsArchived);
148+
149+
Assert.That(result, Is.EqualTo(TestDataSeeder.ExpectedCounts.NonArchivedArchivable));
150+
AssertSqlWasExecuted("COUNT");
151+
AssertSqlWasExecuted("IsArchived");
152+
}
153+
}
154+

0 commit comments

Comments
 (0)