This code caused warning because the method is async and it didn’t await keyword.
public override async Task<IList<TEntity>> GetListAsync(
QueryParameters<TEntity, TKey> queryParameters = null,
CancellationToken cancellationToken = default)
{
return Query(queryParameters).ToList();
}
I’ve added await and turned ToList() into ToListAsync()
return await Query(queryParameters).ToListAsync();
Now this and several other tests fail because of same error :
[Test]
public async Task GetEntityListAsync_Filter_ReturnsFilteredList()
{
//Arrange
var mapper = new MapperConfiguration(cfg =>
{
cfg.AddProfile(new SkillProfile());
}).CreateMapper();
_dataMapper = new DataMapper(mapper);
_skillRepositoryFake = new SkillRepositoryFake(GetEntityList(), _dataMapper);
_unitOfWorkMock.SetupGet(x => x.SkillRepository).Returns(_skillRepositoryFake);
_sut = new SkillService(_unitOfWorkMock.Object);
//Act
var result = await _sut.GetEntityListAsync();
//Assert
var entitiesWithDeletedAt = result.Where(x => x.DeletedAt.HasValue);
Assert.Multiple(() =>
{
Assert.That(entitiesWithDeletedAt, Is.Empty);
Assert.That(result, Has.Count.EqualTo(4));
});
}
The error is :
System.InvalidOperationException : The source ‘IQueryable’ doesn’t
implement
‘IAsyncEnumerable<IDS.HrPortal.Core.Entities.SkillEntity>’. Only
sources that implement ‘IAsyncEnumerable’ can be used for Entity
Framework asynchronous operations.