1

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;
            }
        }
maxspan
  • 13,326
  • 15
  • 75
  • 104

0 Answers0