Skip to content

Commit 2c30611

Browse files
committed
Release 6.0.1 - Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0
1 parent 8ad56ee commit 2c30611

File tree

13 files changed

+67
-25
lines changed

13 files changed

+67
-25
lines changed

src/MockQueryable/MockQueryable.Core/MockQueryable.Core.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
1414
<PackageTags>Mock EntityFrameworkCore Queryable mock EF UnitTests EntityFrameworkCore</PackageTags>
1515
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
16-
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
17-
<Version>6.0.0</Version>
18-
<AssemblyVersion>6.0.0.0</AssemblyVersion>
19-
<FileVersion>6.0.0.0</FileVersion>
16+
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
17+
<Version>6.0.1</Version>
18+
<AssemblyVersion>6.0.0.1</AssemblyVersion>
19+
<FileVersion>6.0.0.1</FileVersion>
2020
<Company></Company>
2121
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2222
<PackageIcon>logo.png</PackageIcon>

src/MockQueryable/MockQueryable.EntityFrameworkCore/MockQueryable.EntityFrameworkCore.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
1515
<PackageTags>Mock EntityFrameworkCore Queryable mock EF UnitTests EntityFrameworkCore</PackageTags>
1616
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
17-
<PackageReleaseNotes> .Net 6 supported </PackageReleaseNotes>
18-
<Version>6.0.0</Version>
19-
<AssemblyVersion>6.0.0.0</AssemblyVersion>
20-
<FileVersion>6.0.0.0</FileVersion>
17+
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
18+
<Version>6.0.1</Version>
19+
<AssemblyVersion>6.0.0.1</AssemblyVersion>
20+
<FileVersion>6.0.0.1</FileVersion>
2121
<Company></Company>
2222
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2323
<PackageIcon>logo.png</PackageIcon>

src/MockQueryable/MockQueryable.FakeItEasy/FakeItEasyExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ public static DbSet<TEntity> BuildMockDbSet<TEntity>(this IQueryable<TEntity> da
2222
mock.ConfigureQueryableCalls(enumerable, data);
2323
mock.ConfigureAsyncEnumerableCalls(enumerable);
2424
mock.ConfigureDbSetCalls(data);
25+
if (mock is IAsyncEnumerable<TEntity> asyncEnumerable)
26+
{
27+
A.CallTo(() => asyncEnumerable.GetAsyncEnumerator(A<CancellationToken>.Ignored)).Returns(enumerable.GetAsyncEnumerator());
28+
}
2529
return mock;
2630
}
2731

@@ -43,6 +47,7 @@ private static void ConfigureAsyncEnumerableCalls<TEntity>(
4347
{
4448
A.CallTo(() => mock.GetAsyncEnumerator(A<CancellationToken>.Ignored))
4549
.Returns(enumerable.GetAsyncEnumerator());
50+
4651
}
4752

4853
private static void ConfigureDbSetCalls<TEntity>(this DbSet<TEntity> mock, IQueryable<TEntity> data)

src/MockQueryable/MockQueryable.FakeItEasy/MockQueryable.FakeItEasy.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
1414
<PackageTags>Mock EntityFrameworkCore Queryable mock EF EFCore UnitTests FakeItEasy</PackageTags>
1515
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
16-
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
17-
<Version>6.0.0</Version>
18-
<AssemblyVersion>6.0.0.0</AssemblyVersion>
19-
<FileVersion>6.0.0.0</FileVersion>
16+
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
17+
<Version>6.0.1</Version>
18+
<AssemblyVersion>6.0.0.1</AssemblyVersion>
19+
<FileVersion>6.0.0.1</FileVersion>
2020
<Company></Company>
2121
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2222
<PackageIcon>logo.png</PackageIcon>

src/MockQueryable/MockQueryable.Moq/MockQueryable.Moq.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
1414
<PackageTags>Mock EntityFrameworkCore Queryable mock EF EFCore UnitTests EntityFrameworkCore Moq</PackageTags>
1515
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
16-
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
17-
<Version>6.0.0</Version>
18-
<AssemblyVersion>6.0.0.0</AssemblyVersion>
19-
<FileVersion>6.0.0.0</FileVersion>
16+
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
17+
<Version>6.0.1</Version>
18+
<AssemblyVersion>6.0.0.1</AssemblyVersion>
19+
<FileVersion>6.0.0.1</FileVersion>
2020
<Company></Company>
2121
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2222
<PackageIcon>logo.png</PackageIcon>

src/MockQueryable/MockQueryable.Moq/MoqExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ public static Mock<DbSet<TEntity>> BuildMockDbSet<TEntity>(this IQueryable<TEnti
2121
var enumerable = new TestAsyncEnumerableEfCore<TEntity>(data);
2222
mock.ConfigureAsyncEnumerableCalls(enumerable);
2323
mock.As<IQueryable<TEntity>>().ConfigureQueryableCalls(enumerable, data);
24+
mock.As<IAsyncEnumerable<TEntity>>().Setup(x => x.GetAsyncEnumerator(It.IsAny<CancellationToken>())).Returns(enumerable.GetAsyncEnumerator());
25+
mock.Setup(m => m.AsQueryable()).Returns(enumerable);
26+
2427
mock.ConfigureDbSetCalls(data);
2528
return mock;
2629
}
@@ -41,6 +44,7 @@ private static void ConfigureQueryableCalls<TEntity>(
4144
mock.Setup(m => m.Expression).Returns(data?.Expression);
4245
mock.Setup(m => m.ElementType).Returns(data?.ElementType);
4346
mock.Setup(m => m.GetEnumerator()).Returns(() => data?.GetEnumerator());
47+
4448
}
4549

4650
private static void ConfigureAsyncEnumerableCalls<TEntity>(
@@ -49,6 +53,7 @@ private static void ConfigureAsyncEnumerableCalls<TEntity>(
4953
{
5054
mock.Setup(d => d.GetAsyncEnumerator(It.IsAny<CancellationToken>()))
5155
.Returns(() => enumerable.GetAsyncEnumerator());
56+
5257
}
5358

5459
private static async IAsyncEnumerable<TEntity> CreateAsyncMock<TEntity>(IEnumerable<TEntity> data)

src/MockQueryable/MockQueryable.NSubstitute/MockQueryable.NSubstitute.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
1414
<PackageTags>Mock EntityFrameworkCore Queryable mock EF EFCore UnitTests EntityFrameworkCore NSubstitute</PackageTags>
1515
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
16-
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
17-
<Version>6.0.0</Version>
18-
<AssemblyVersion>6.0.0.0</AssemblyVersion>
19-
<FileVersion>6.0.0.0</FileVersion>
16+
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
17+
<Version>6.0.1</Version>
18+
<AssemblyVersion>6.0.0.1</AssemblyVersion>
19+
<FileVersion>6.0.0.1</FileVersion>
2020
<Company></Company>
2121
<PackageLicenseFile>LICENSE</PackageLicenseFile>
2222
<PackageIcon>logo.png</PackageIcon>

src/MockQueryable/MockQueryable.NSubstitute/NSubstituteExtensions.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@ public static DbSet<TEntity> BuildMockDbSet<TEntity>(this IQueryable<TEntity> da
2424
mock.ConfigureQueryableCalls(enumerable, data);
2525
mock.ConfigureDbSetCalls(data);
2626

27+
if (mock is IAsyncEnumerable<TEntity> asyncEnumerable)
28+
{
29+
asyncEnumerable.GetAsyncEnumerator(Arg.Any<CancellationToken>()).Returns(args => enumerable.GetAsyncEnumerator());
30+
}
31+
2732
return mock;
2833
}
2934

src/MockQueryable/MockQueryable.Sample/MyService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public interface IUserRepository
8686

8787
Task CreateUser(UserEntity user);
8888

89-
List<UserEntity> GetAll();
89+
Task<List<UserEntity>> GetAll();
9090

9191
IAsyncEnumerable<UserEntity> GetAllAsync();
9292
}

src/MockQueryable/MockQueryable.Sample/MyServiceFakeItEasyTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,19 @@ public async Task DbSetGetAllUserEntitiesAsync()
165165
Assert.AreEqual(users.Count, result.Count);
166166
}
167167

168+
[TestCase]
169+
public async Task DbSetGetAllUserEntity()
170+
{
171+
//arrange
172+
var users = CreateUserList();
173+
var mock = users.AsQueryable().BuildMockDbSet();
174+
var userRepository = new TestDbSetRepository(mock);
175+
//act
176+
var result = await userRepository.GetAll();
177+
//assert
178+
Assert.AreEqual(users.Count, result.Count);
179+
}
180+
168181
private static List<UserEntity> CreateUserList() => new List<UserEntity>
169182
{
170183
new UserEntity

0 commit comments

Comments
 (0)