public void Build_AllCalls_ReturnPassedValues() { // Arrange var clusterConfiguration = this.fixture.Create <ClusterConfiguration>(); var topic1 = this.fixture.Create <string>(); var topic2 = this.fixture.Create <string>(); var name = this.fixture.Create <string>(); const int bufferSize = 100; const int workers = 10; const AutoOffsetReset offsetReset = AutoOffsetReset.Earliest; var groupId = this.fixture.Create <string>(); const int autoCommitInterval = 10000; const int maxPollIntervalMs = 500000; ConsumerCustomFactory customFactory = (producer, resolver) => producer; Action <string> statisticsHandler = s => { }; const int statisticsIntervalMs = 100; var consumerConfig = new ConsumerConfig(); this.target .Topics(topic1) .Topic(topic2) .WithName(name) .WithBufferSize(bufferSize) .WithWorkersCount(workers) .WithGroupId(groupId) .WithAutoOffsetReset(offsetReset) .WithManualStoreOffsets() .WithAutoCommitIntervalMs(autoCommitInterval) .WithMaxPollIntervalMs(maxPollIntervalMs) .WithConsumerConfig(consumerConfig) .WithCustomFactory(customFactory) .WithStatisticsIntervalMs(statisticsIntervalMs) .WithStatisticsHandler(statisticsHandler) .AddMiddlewares(m => m.Add <IMessageMiddleware>()); // Act var configuration = this.target.Build(clusterConfiguration); // Assert configuration.Topics.Should().BeEquivalentTo(topic1, topic2); configuration.ConsumerName.Should().Be(name); configuration.BufferSize.Should().Be(bufferSize); configuration.WorkerCount.Should().Be(workers); configuration.GroupId.Should().Be(groupId); configuration.GetKafkaConfig().AutoOffsetReset.Should().Be(offsetReset); configuration.AutoStoreOffsets.Should().Be(false); configuration.GetKafkaConfig().EnableAutoOffsetStore.Should().Be(false); configuration.GetKafkaConfig().EnableAutoCommit.Should().Be(false); configuration.AutoCommitInterval.Should().Be(TimeSpan.FromMilliseconds(autoCommitInterval)); configuration.GetKafkaConfig().MaxPollIntervalMs.Should().Be(maxPollIntervalMs); configuration.GetKafkaConfig().StatisticsIntervalMs.Should().Be(statisticsIntervalMs); configuration.StatisticsHandlers.Should().HaveElementAt(0, statisticsHandler); configuration.GetKafkaConfig().Should().BeSameAs(consumerConfig); configuration.MiddlewareConfiguration.Factories.Should().HaveCount(1); }
public IConsumerConfigurationBuilder WithAutoOffsetReset(KafkaFlow.AutoOffsetReset autoOffsetReset) { this.autoOffsetReset = autoOffsetReset switch { KafkaFlow.AutoOffsetReset.Earliest => AutoOffsetReset.Earliest, KafkaFlow.AutoOffsetReset.Latest => AutoOffsetReset.Latest, _ => throw new InvalidEnumArgumentException( nameof(autoOffsetReset), (int)autoOffsetReset, typeof(KafkaFlow.AutoOffsetReset)) }; return(this); }
public IConsumerConfigurationBuilder WithAutoOffsetReset(KafkaFlow.AutoOffsetReset autoOffsetReset) { switch (autoOffsetReset) { case KafkaFlow.AutoOffsetReset.Earliest: this.consumerConfig.AutoOffsetReset = AutoOffsetReset.Earliest; break; case KafkaFlow.AutoOffsetReset.Latest: this.consumerConfig.AutoOffsetReset = AutoOffsetReset.Latest; break; } return(this); }