Skip to content

Commit b140043

Browse files
feat: include mongodb retry skip index creation parameter
When this parameter is included, the application will ignore the creation of its indexes. This makes the behavior explicit for the developer using the library.
1 parent 1cd76eb commit b140043

File tree

4 files changed

+31
-1
lines changed

4 files changed

+31
-1
lines changed

src/KafkaFlow.Retry.MongoDb/MongoDbDataProviderFactory.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,14 @@ public DataProviderCreationResult TryCreate(MongoDbSettings mongoDbSettings)
2323
{
2424
var mongoClient = new MongoClient(mongoDbSettings.ConnectionString);
2525
var dbContext = new DbContext(mongoDbSettings, mongoClient);
26+
2627
DboConfigurations.TryAddIndexes(dbContext);
28+
29+
if (!mongoDbSettings.SkipIndexCreation)
30+
{
31+
DboConfigurations.TryAddIndexes(dbContext);
32+
}
33+
2734
return new DataProviderCreationResult(
2835
null,
2936
new RetryQueueDataProvider(

src/KafkaFlow.Retry.MongoDb/MongoDbSettings.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ namespace KafkaFlow.Retry.MongoDb;
55
[ExcludeFromCodeCoverage]
66
public class MongoDbSettings
77
{
8+
public bool SkipIndexCreation { get; set; }
9+
810
public string ConnectionString { get; set; }
911

1012
public string DatabaseName { get; set; }

src/KafkaFlow.Retry.MongoDb/RetryDurableDefinitionBuilderExtension.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,14 @@ public static RetryDurableDefinitionBuilder WithMongoDbDataProvider(
77
string connectionString,
88
string databaseName,
99
string mongoDbretryQueueCollectionName,
10-
string mongoDbretryQueueItemCollectionName)
10+
string mongoDbretryQueueItemCollectionName,
11+
bool mongoDbretrySkipIndexCreation = false)
1112
{
1213
var dataProviderCreation = new MongoDbDataProviderFactory()
1314
.TryCreate(
1415
new MongoDbSettings
1516
{
17+
SkipIndexCreation = mongoDbretrySkipIndexCreation,
1618
ConnectionString = connectionString,
1719
DatabaseName = databaseName,
1820
RetryQueueCollectionName = mongoDbretryQueueCollectionName,

tests/KafkaFlow.Retry.UnitTests/Repositories/MongoDb/RetryDurableDefinitionBuilderExtensionTests.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,23 @@ public void RetryDurableDefinitionBuilder_WithMongoDbDataProvider_Success()
4040
result.Should().NotBeNull();
4141
result.Should().BeOfType(typeof(RetryDurableDefinitionBuilder));
4242
}
43+
44+
[Fact]
45+
public void RetryDurableDefinitionBuilder_WithMongoDbDataProviderAndSkipIndexCreation_Success()
46+
{
47+
// Arrange
48+
var builder = new RetryDurableDefinitionBuilder();
49+
50+
// Act
51+
var result = builder.WithMongoDbDataProvider(
52+
"mongodb://localhost:27017/KafkaFlowRetry?maxPoolSize=1000",
53+
"Test",
54+
"RetryQueueCollectionName",
55+
"RetryQueueItemCollectionName",
56+
true
57+
);
58+
59+
result.Should().NotBeNull();
60+
result.Should().BeOfType(typeof(RetryDurableDefinitionBuilder));
61+
}
4362
}

0 commit comments

Comments
 (0)