I am trying to test QueryAllScheduledJob method. It contains a call to GetScheduledJobs which return an IAsyncEnumerable collection. I have created a setup for GetScheduledJobs. I am getting an exception of type 'null instance' for GetScheduledJobs. In my setup I tried using Task.Result for return it gives compile time error.
implementation class
public async IAsyncEnumerable<ScheduledJobModel> QueryAllScheduledJob()
{
var enumerator = ScheduledJobRepository.GetScheduledJobs().GetAsyncEnumerator();
while (await enumerator.MoveNextAsync())
yield return ConvertTypeToModel<ScheduledJobModel, ScheduledJobs>(enumerator.Current);
}
Test Class
[Theory]
[InlineData(5)]
public async void ShouldHaveScheduledJobRecords(int numberOfScheduledJobs)
{
//Arrange
var data = ScheduleJobFixtureHelper.GetXNumberofScheduledJobs(numberOfScheduledJobs);
ScheduledJobRepository.Setup(a => a.GetScheduledJobs()).Returns(data);
////Act
var results = QueueManager.QueryAllScheduledJob();
//Assert
Assert.Equal(numberOfScheduledJobs, await results.CountAsync());
}
public async IAsyncEnumerable<ScheduledJobs> GetXNumberofScheduledJobs(int totalNumberofScheduledJob)
{
IEnumerator<ScheduledJobs> enumerator = AutoFixture.CreateMany<ScheduledJobs>(totalNumberofScheduledJob).GetEnumerator();
while (enumerator.MoveNext())
{
yield return enumerator.Current;
}
}