public async Task Complete_WithMultipleDataLoaders_ShouldClearQueue() { var token = new CancellationTokenSource().Token; var context = new DataLoaderContext(); var dataLoaderMocks = Enumerable.Range(0, 20).Select(_ => new Mock <IExecutableDataLoader>()).ToList(); dataLoaderMocks.ForEach(mock => (context as IDataLoaderContext).QueueExecutableDataLoader(mock.Object)); await context.Complete(token); dataLoaderMocks.ForEach(mock => mock.Verify(x => x.ExecuteAsync(token), Times.Once)); await context.Complete(token); await context.Complete(token); dataLoaderMocks.ForEach(mock => mock.Verify(x => x.ExecuteAsync(token), Times.Once)); }
public async Task Complete_MultipleLoaderTask_ShouldNotBlock() { var context = new DataLoaderContext(); var task = MultipleLoaderTask(context); await context.Complete(CancellationToken.None); var result = await task.ConfigureAwait(false); Assert.That(result, Is.EqualTo(9)); }
public async Task Complete_SingleLoaderTask_ShouldNotBlock() { var context = new DataLoaderContext(); var task = SingleLoaderTask(context); await context.Complete(CancellationToken.None); var result = await task; Assert.That(result, Is.EqualTo(7)); }
public async Task Complete_WithOneDataLoader_ShouldCallExecuteAsyncMethod() { var token = new CancellationTokenSource().Token; var context = new DataLoaderContext(); var dataLoaderMock = new Mock <IExecutableDataLoader>(); (context as IDataLoaderContext).QueueExecutableDataLoader(dataLoaderMock.Object); await context.Complete(token); dataLoaderMock.Verify(x => x.ExecuteAsync(token), Times.Once); }
public async Task Complete_WithoutQueuedLoaders_ShouldNotThrow() { var context = new DataLoaderContext(); await context.Complete(CancellationToken.None); }