using System; using System.Collections.Generic; using System.Threading.Tasks; using DotXxlJob.Core.DefaultHandlers; using DotXxlJob.Core.Model; using Microsoft.Extensions.DependencyInjection; using Xunit; namespace DotXxlJob.Core.Tests { public class BeanTaskExecutorTest { [Fact] public async Task Repeated_Job_Handler() { var services = new ServiceCollection(); services.AddScoped(); services.AddXxlJobExecutor(options => options.AdminAddresses = "http://localhost"); var list = new List(); services.AddJobHandler("test", list); using (var provider = services.BuildServiceProvider(true)) { await provider.GetRequiredService() .Execute(new TriggerParam { ExecutorHandler = "test" }); } Assert.Single(list); } private class TestJobHandler : IJobHandler { private readonly List _list; public TestJobHandler(List list, ScopedService _) => _list = list; public void Dispose() { } public Task Execute(JobExecuteContext context) { _list.Add(new object()); return Task.FromResult(ReturnT.SUCCESS); } } private class ScopedService { } } }