File tree Expand file tree Collapse file tree 13 files changed +67
-25
lines changed
MockQueryable.EntityFrameworkCore
MockQueryable.NSubstitute Expand file tree Collapse file tree 13 files changed +67
-25
lines changed Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff 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 )
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff 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 )
Original file line number Diff line number Diff line change 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 >
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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 }
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments