public void TestAddNullDescriptor()
        {
            var services = new ServiceCollection();
            var builder  = new CamundaWorkerBuilder(services);

            Assert.Throws <ArgumentNullException>(() => builder.AddHandlerDescriptor(null));
        }
        public void TestConfigurePipeline()
        {
            var services = new ServiceCollection();
            var builder  = new CamundaWorkerBuilder(services);

            builder.ConfigurePipeline(pipeline => { });

            Assert.Contains(services, d => d.Lifetime == ServiceLifetime.Singleton &&
                            d.ServiceType == typeof(PipelineDescriptor));
        }
        public void TestAddTaskSelector()
        {
            var services = new ServiceCollection();
            var builder  = new CamundaWorkerBuilder(services);

            builder.AddTaskSelector <ExternalTaskSelector>();

            Assert.Contains(services, d => d.Lifetime == ServiceLifetime.Transient &&
                            d.ServiceType == typeof(IExternalTaskSelector) &&
                            d.ImplementationType == typeof(ExternalTaskSelector));
        }
        public void TestAddTopicsProvider()
        {
            var services = new ServiceCollection();
            var builder  = new CamundaWorkerBuilder(services);

            builder.AddTopicsProvider <TopicsProvider>();

            Assert.Contains(services, d => d.Lifetime == ServiceLifetime.Transient &&
                            d.ServiceType == typeof(ITopicsProvider) &&
                            d.ImplementationType == typeof(TopicsProvider));
        }
        public void TestAddFactoryProvider()
        {
            var services = new ServiceCollection();
            var builder  = new CamundaWorkerBuilder(services);

            builder.AddEndpointProvider <EndpointProvider>();

            Assert.Contains(services, d => d.Lifetime == ServiceLifetime.Singleton &&
                            d.ServiceType == typeof(IEndpointProvider) &&
                            d.ImplementationType == typeof(EndpointProvider));
        }
        public void TestAddDescriptor()
        {
            var services = new ServiceCollection();

            Task FakeHandlerDelegate(IExternalTaskContext context) => Task.CompletedTask;

            var builder = new CamundaWorkerBuilder(services);

            builder.AddHandlerDescriptor(new HandlerDescriptor(FakeHandlerDelegate,
                                                               new HandlerMetadata(new[] { "testTopic" })));

            Assert.Contains(services, d => d.Lifetime == ServiceLifetime.Singleton &&
                            d.ImplementationInstance != null);
        }