Skip to content

Commit

Permalink
Release 6.0.1 - Fixed issue #58 ToListAsync() returns empty list afte…
Browse files Browse the repository at this point in the history
…r package update to 6.0.0
  • Loading branch information
romantitov committed Mar 28, 2022
1 parent 8ad56ee commit 2c30611
Show file tree
Hide file tree
Showing 13 changed files with 67 additions and 25 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
<PackageTags>Mock EntityFrameworkCore Queryable mock EF UnitTests EntityFrameworkCore</PackageTags>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
<Version>6.0.0</Version>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<FileVersion>6.0.0.0</FileVersion>
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
<Version>6.0.1</Version>
<AssemblyVersion>6.0.0.1</AssemblyVersion>
<FileVersion>6.0.0.1</FileVersion>
<Company></Company>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageIcon>logo.png</PackageIcon>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
<PackageTags>Mock EntityFrameworkCore Queryable mock EF UnitTests EntityFrameworkCore</PackageTags>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageReleaseNotes> .Net 6 supported </PackageReleaseNotes>
<Version>6.0.0</Version>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<FileVersion>6.0.0.0</FileVersion>
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
<Version>6.0.1</Version>
<AssemblyVersion>6.0.0.1</AssemblyVersion>
<FileVersion>6.0.0.1</FileVersion>
<Company></Company>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageIcon>logo.png</PackageIcon>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ public static DbSet<TEntity> BuildMockDbSet<TEntity>(this IQueryable<TEntity> da
mock.ConfigureQueryableCalls(enumerable, data);
mock.ConfigureAsyncEnumerableCalls(enumerable);
mock.ConfigureDbSetCalls(data);
if (mock is IAsyncEnumerable<TEntity> asyncEnumerable)
{
A.CallTo(() => asyncEnumerable.GetAsyncEnumerator(A<CancellationToken>.Ignored)).Returns(enumerable.GetAsyncEnumerator());
}
return mock;
}

Expand All @@ -43,6 +47,7 @@ private static void ConfigureAsyncEnumerableCalls<TEntity>(
{
A.CallTo(() => mock.GetAsyncEnumerator(A<CancellationToken>.Ignored))
.Returns(enumerable.GetAsyncEnumerator());

}

private static void ConfigureDbSetCalls<TEntity>(this DbSet<TEntity> mock, IQueryable<TEntity> data)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
<PackageTags>Mock EntityFrameworkCore Queryable mock EF EFCore UnitTests FakeItEasy</PackageTags>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
<Version>6.0.0</Version>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<FileVersion>6.0.0.0</FileVersion>
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
<Version>6.0.1</Version>
<AssemblyVersion>6.0.0.1</AssemblyVersion>
<FileVersion>6.0.0.1</FileVersion>
<Company></Company>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageIcon>logo.png</PackageIcon>
Expand Down
8 changes: 4 additions & 4 deletions src/MockQueryable/MockQueryable.Moq/MockQueryable.Moq.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
<PackageTags>Mock EntityFrameworkCore Queryable mock EF EFCore UnitTests EntityFrameworkCore Moq</PackageTags>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
<Version>6.0.0</Version>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<FileVersion>6.0.0.0</FileVersion>
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
<Version>6.0.1</Version>
<AssemblyVersion>6.0.0.1</AssemblyVersion>
<FileVersion>6.0.0.1</FileVersion>
<Company></Company>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageIcon>logo.png</PackageIcon>
Expand Down
5 changes: 5 additions & 0 deletions src/MockQueryable/MockQueryable.Moq/MoqExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ public static Mock<DbSet<TEntity>> BuildMockDbSet<TEntity>(this IQueryable<TEnti
var enumerable = new TestAsyncEnumerableEfCore<TEntity>(data);
mock.ConfigureAsyncEnumerableCalls(enumerable);
mock.As<IQueryable<TEntity>>().ConfigureQueryableCalls(enumerable, data);
mock.As<IAsyncEnumerable<TEntity>>().Setup(x => x.GetAsyncEnumerator(It.IsAny<CancellationToken>())).Returns(enumerable.GetAsyncEnumerator());
mock.Setup(m => m.AsQueryable()).Returns(enumerable);

mock.ConfigureDbSetCalls(data);
return mock;
}
Expand All @@ -41,6 +44,7 @@ private static void ConfigureQueryableCalls<TEntity>(
mock.Setup(m => m.Expression).Returns(data?.Expression);
mock.Setup(m => m.ElementType).Returns(data?.ElementType);
mock.Setup(m => m.GetEnumerator()).Returns(() => data?.GetEnumerator());

}

private static void ConfigureAsyncEnumerableCalls<TEntity>(
Expand All @@ -49,6 +53,7 @@ private static void ConfigureAsyncEnumerableCalls<TEntity>(
{
mock.Setup(d => d.GetAsyncEnumerator(It.IsAny<CancellationToken>()))
.Returns(() => enumerable.GetAsyncEnumerator());

}

private static async IAsyncEnumerable<TEntity> CreateAsyncMock<TEntity>(IEnumerable<TEntity> data)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@
<RepositoryUrl>https://github.com/romantitov/MockQueryable</RepositoryUrl>
<PackageTags>Mock EntityFrameworkCore Queryable mock EF EFCore UnitTests EntityFrameworkCore NSubstitute</PackageTags>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageReleaseNotes> .Net 6 supported</PackageReleaseNotes>
<Version>6.0.0</Version>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<FileVersion>6.0.0.0</FileVersion>
<PackageReleaseNotes> Fixed issue #58 ToListAsync() returns empty list after package update to 6.0.0 </PackageReleaseNotes>
<Version>6.0.1</Version>
<AssemblyVersion>6.0.0.1</AssemblyVersion>
<FileVersion>6.0.0.1</FileVersion>
<Company></Company>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageIcon>logo.png</PackageIcon>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ public static DbSet<TEntity> BuildMockDbSet<TEntity>(this IQueryable<TEntity> da
mock.ConfigureQueryableCalls(enumerable, data);
mock.ConfigureDbSetCalls(data);

if (mock is IAsyncEnumerable<TEntity> asyncEnumerable)
{
asyncEnumerable.GetAsyncEnumerator(Arg.Any<CancellationToken>()).Returns(args => enumerable.GetAsyncEnumerator());
}

return mock;
}

Expand Down
2 changes: 1 addition & 1 deletion src/MockQueryable/MockQueryable.Sample/MyService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public interface IUserRepository

Task CreateUser(UserEntity user);

List<UserEntity> GetAll();
Task<List<UserEntity>> GetAll();

IAsyncEnumerable<UserEntity> GetAllAsync();
}
Expand Down
13 changes: 13 additions & 0 deletions src/MockQueryable/MockQueryable.Sample/MyServiceFakeItEasyTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,19 @@ public async Task DbSetGetAllUserEntitiesAsync()
Assert.AreEqual(users.Count, result.Count);
}

[TestCase]
public async Task DbSetGetAllUserEntity()
{
//arrange
var users = CreateUserList();
var mock = users.AsQueryable().BuildMockDbSet();
var userRepository = new TestDbSetRepository(mock);
//act
var result = await userRepository.GetAll();
//assert
Assert.AreEqual(users.Count, result.Count);
}

private static List<UserEntity> CreateUserList() => new List<UserEntity>
{
new UserEntity
Expand Down
4 changes: 2 additions & 2 deletions src/MockQueryable/MockQueryable.Sample/MyServiceMoqTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,14 @@ public async Task DbSetGetUserReports(DateTime from, DateTime to, int expectedCo
}

[TestCase]
public void DbSetGetAllUserEntity()
public async Task DbSetGetAllUserEntity()
{
//arrange
var users = CreateUserList();
var mock = users.AsQueryable().BuildMockDbSet();
var userRepository = new TestDbSetRepository(mock.Object);
//act
var result = userRepository.GetAll();
var result = await userRepository.GetAll();
//assert
Assert.AreEqual(users.Count, result.Count);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,20 @@ public async Task DbSetGetUserReports(DateTime from, DateTime to, int expectedCo
Assert.AreEqual(expectedCount, result.Count);
}


[TestCase]
public async Task DbSetGetAllUserEntity()
{
//arrange
var users = CreateUserList();
var mock = users.AsQueryable().BuildMockDbSet();
var userRepository = new TestDbSetRepository(mock);
//act
var result = await userRepository.GetAll();
//assert
Assert.AreEqual(users.Count, result.Count);
}

[TestCase]
public async Task DbSetGetAllUserEntitiesAsync()
{
Expand Down
4 changes: 2 additions & 2 deletions src/MockQueryable/MockQueryable.Sample/TestDbSetRepository.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ public async Task CreateUser(UserEntity user)
await _dbSet.AddAsync(user);
}

public List<UserEntity> GetAll() {
return _dbSet.AsQueryable().ToList();
public async Task<List<UserEntity>> GetAll() {
return await _dbSet.ToListAsync();
}

public IAsyncEnumerable<UserEntity> GetAllAsync()
Expand Down

0 comments on commit 2c30611

Please sign in to comment.