From c3d144be33cccc4aa3487088bc0dc1f88b37fa9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 20:53:10 +0200 Subject: [PATCH 1/8] add testcontainers camunda --- Testcontainers.sln | 7 ++ src/Testcontainers.Camunda/.editorconfig | 1 + src/Testcontainers.Camunda/CamundaBuilder.cs | 66 +++++++++++++++++++ .../CamundaConfiguration.cs | 54 +++++++++++++++ .../CamundaContainer.cs | 14 ++++ .../Testcontainers.Camunda.csproj | 12 ++++ src/Testcontainers.Camunda/Usings.cs | 6 ++ 7 files changed, 160 insertions(+) create mode 100644 src/Testcontainers.Camunda/.editorconfig create mode 100644 src/Testcontainers.Camunda/CamundaBuilder.cs create mode 100644 src/Testcontainers.Camunda/CamundaConfiguration.cs create mode 100644 src/Testcontainers.Camunda/CamundaContainer.cs create mode 100644 src/Testcontainers.Camunda/Testcontainers.Camunda.csproj create mode 100644 src/Testcontainers.Camunda/Usings.cs diff --git a/Testcontainers.sln b/Testcontainers.sln index 9595905ed..19ceb2cac 100644 --- a/Testcontainers.sln +++ b/Testcontainers.sln @@ -195,6 +195,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.Tests", "tes EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.WebDriver.Tests", "tests\Testcontainers.WebDriver.Tests\Testcontainers.WebDriver.Tests.csproj", "{EBA72C3B-57D5-43FF-A5B4-3D55B3B6D4C2}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.Camunda", "src\Testcontainers.Camunda\Testcontainers.Camunda.csproj", "{D1291B24-EED1-431C-B7CE-606A1D1B5AE8}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -568,6 +570,10 @@ Global {EBA72C3B-57D5-43FF-A5B4-3D55B3B6D4C2}.Debug|Any CPU.Build.0 = Debug|Any CPU {EBA72C3B-57D5-43FF-A5B4-3D55B3B6D4C2}.Release|Any CPU.ActiveCfg = Release|Any CPU {EBA72C3B-57D5-43FF-A5B4-3D55B3B6D4C2}.Release|Any CPU.Build.0 = Release|Any CPU + {D1291B24-EED1-431C-B7CE-606A1D1B5AE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D1291B24-EED1-431C-B7CE-606A1D1B5AE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D1291B24-EED1-431C-B7CE-606A1D1B5AE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D1291B24-EED1-431C-B7CE-606A1D1B5AE8}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {5365F780-0E6C-41F0-B1B9-7DC34368F80C} = {673F23AE-7694-4BB9-ABD4-136D6C13634E} @@ -661,5 +667,6 @@ Global {1A1983E6-5297-435F-B467-E8E1F11277D6} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF} {27CDB869-A150-4593-958F-6F26E5391E7C} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF} {EBA72C3B-57D5-43FF-A5B4-3D55B3B6D4C2} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF} + {D1291B24-EED1-431C-B7CE-606A1D1B5AE8} = {673F23AE-7694-4BB9-ABD4-136D6C13634E} EndGlobalSection EndGlobal diff --git a/src/Testcontainers.Camunda/.editorconfig b/src/Testcontainers.Camunda/.editorconfig new file mode 100644 index 000000000..6f066619d --- /dev/null +++ b/src/Testcontainers.Camunda/.editorconfig @@ -0,0 +1 @@ +root = true \ No newline at end of file diff --git a/src/Testcontainers.Camunda/CamundaBuilder.cs b/src/Testcontainers.Camunda/CamundaBuilder.cs new file mode 100644 index 000000000..231895848 --- /dev/null +++ b/src/Testcontainers.Camunda/CamundaBuilder.cs @@ -0,0 +1,66 @@ +namespace Testcontainers.Camunda; + +/// +[PublicAPI] +public class CamundaBuilder : ContainerBuilder +{ + public const string CamundaImage = "camunda/camunda-bpm-platform:wildfly-7.22.0-SNAPSHOT"; + + public const ushort CamundaPort = 8080; + + /// + /// Initializes a new instance of the class. + /// + public CamundaBuilder() + : this(new CamundaConfiguration()) + { + DockerResourceConfiguration = Init().DockerResourceConfiguration; + } + + /// + /// Initializes a new instance of the class. + /// + /// The Docker resource configuration. + private CamundaBuilder(CamundaConfiguration resourceConfiguration) + : base(resourceConfiguration) + { + DockerResourceConfiguration = resourceConfiguration; + } + + /// + protected override CamundaConfiguration DockerResourceConfiguration { get; } + + /// + public override CamundaContainer Build() + { + Validate(); + return new CamundaContainer(DockerResourceConfiguration); + } + + /// + protected override CamundaBuilder Init() + { + return base.Init() + .WithImage(CamundaImage) + .WithPortBinding(CamundaPort, true) + .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("(?s).*listening.*$")); + } + + /// + protected override CamundaBuilder Clone(IResourceConfiguration resourceConfiguration) + { + return Merge(DockerResourceConfiguration, new CamundaConfiguration(resourceConfiguration)); + } + + /// + protected override CamundaBuilder Clone(IContainerConfiguration resourceConfiguration) + { + return Merge(DockerResourceConfiguration, new CamundaConfiguration(resourceConfiguration)); + } + + /// + protected override CamundaBuilder Merge(CamundaConfiguration oldValue, CamundaConfiguration newValue) + { + return new CamundaBuilder(new CamundaConfiguration(oldValue, newValue)); + } +} \ No newline at end of file diff --git a/src/Testcontainers.Camunda/CamundaConfiguration.cs b/src/Testcontainers.Camunda/CamundaConfiguration.cs new file mode 100644 index 000000000..b85996ecb --- /dev/null +++ b/src/Testcontainers.Camunda/CamundaConfiguration.cs @@ -0,0 +1,54 @@ +namespace Testcontainers.Camunda; + +/// +[PublicAPI] +public class CamundaConfiguration : ContainerConfiguration +{ + /// + /// Initializes a new instance of the class. + /// + public CamundaConfiguration() + { + + } + + /// + /// Initializes a new instance of the class. + /// + /// The Docker resource configuration. + public CamundaConfiguration(IResourceConfiguration resourceConfiguration) + : base(resourceConfiguration) + { + // Passes the configuration upwards to the base implementations to create an updated immutable copy. + } + + /// + /// Initializes a new instance of the class. + /// + /// The Docker resource configuration. + public CamundaConfiguration(IContainerConfiguration resourceConfiguration) + : base(resourceConfiguration) + { + // Passes the configuration upwards to the base implementations to create an updated immutable copy. + } + + /// + /// Initializes a new instance of the class. + /// + /// The Docker resource configuration. + public CamundaConfiguration(CamundaConfiguration resourceConfiguration) + : this(new CamundaConfiguration(), resourceConfiguration) + { + // Passes the configuration upwards to the base implementations to create an updated immutable copy. + } + + /// + /// Initializes a new instance of the class. + /// + /// The old Docker resource configuration. + /// The new Docker resource configuration. + public CamundaConfiguration(CamundaConfiguration oldValue, CamundaConfiguration newValue) + : base(oldValue, newValue) + { + } +} \ No newline at end of file diff --git a/src/Testcontainers.Camunda/CamundaContainer.cs b/src/Testcontainers.Camunda/CamundaContainer.cs new file mode 100644 index 000000000..8c6726eef --- /dev/null +++ b/src/Testcontainers.Camunda/CamundaContainer.cs @@ -0,0 +1,14 @@ +namespace Testcontainers.Camunda; + +/// +[PublicAPI] +public sealed class CamundaContainer : DockerContainer +{ + /// + /// Initializes a new instance of the class. + /// + /// The container configuration. + public CamundaContainer(IContainerConfiguration configuration) : base(configuration) + { + } +} \ No newline at end of file diff --git a/src/Testcontainers.Camunda/Testcontainers.Camunda.csproj b/src/Testcontainers.Camunda/Testcontainers.Camunda.csproj new file mode 100644 index 000000000..0bc118e7c --- /dev/null +++ b/src/Testcontainers.Camunda/Testcontainers.Camunda.csproj @@ -0,0 +1,12 @@ + + + net6.0;net8.0;netstandard2.0;netstandard2.1 + latest + + + + + + + + \ No newline at end of file diff --git a/src/Testcontainers.Camunda/Usings.cs b/src/Testcontainers.Camunda/Usings.cs new file mode 100644 index 000000000..79fd3af9b --- /dev/null +++ b/src/Testcontainers.Camunda/Usings.cs @@ -0,0 +1,6 @@ +global using System; +global using Docker.DotNet.Models; +global using DotNet.Testcontainers.Builders; +global using DotNet.Testcontainers.Configurations; +global using DotNet.Testcontainers.Containers; +global using JetBrains.Annotations; \ No newline at end of file From abcbd80cea3fe8e6b0ab7d835e7d064e842f3fff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 21:15:57 +0200 Subject: [PATCH 2/8] tests --- Directory.Packages.props | 129 +++++++++--------- Testcontainers.sln | 7 + src/Testcontainers.Camunda/CamundaBuilder.cs | 2 +- .../CamundaContainer.cs | 11 ++ .../.editorconfig | 1 + .../CamundaContainerTest.cs | 31 +++++ .../Testcontainers.Camunda.Tests.csproj | 18 +++ tests/Testcontainers.Camunda.Tests/Usings.cs | 7 + 8 files changed, 141 insertions(+), 65 deletions(-) create mode 100644 tests/Testcontainers.Camunda.Tests/.editorconfig create mode 100644 tests/Testcontainers.Camunda.Tests/CamundaContainerTest.cs create mode 100644 tests/Testcontainers.Camunda.Tests/Testcontainers.Camunda.Tests.csproj create mode 100644 tests/Testcontainers.Camunda.Tests/Usings.cs diff --git a/Directory.Packages.props b/Directory.Packages.props index a226bec96..921e78075 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,66 +1,67 @@ - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Testcontainers.sln b/Testcontainers.sln index 19ceb2cac..e36ab545c 100644 --- a/Testcontainers.sln +++ b/Testcontainers.sln @@ -197,6 +197,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.WebDriver.Te EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.Camunda", "src\Testcontainers.Camunda\Testcontainers.Camunda.csproj", "{D1291B24-EED1-431C-B7CE-606A1D1B5AE8}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Testcontainers.Camunda.Tests", "tests\Testcontainers.Camunda.Tests\Testcontainers.Camunda.Tests.csproj", "{E49BEB22-7719-4006-ACB9-90046D1F8526}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -574,6 +576,10 @@ Global {D1291B24-EED1-431C-B7CE-606A1D1B5AE8}.Debug|Any CPU.Build.0 = Debug|Any CPU {D1291B24-EED1-431C-B7CE-606A1D1B5AE8}.Release|Any CPU.ActiveCfg = Release|Any CPU {D1291B24-EED1-431C-B7CE-606A1D1B5AE8}.Release|Any CPU.Build.0 = Release|Any CPU + {E49BEB22-7719-4006-ACB9-90046D1F8526}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E49BEB22-7719-4006-ACB9-90046D1F8526}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E49BEB22-7719-4006-ACB9-90046D1F8526}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E49BEB22-7719-4006-ACB9-90046D1F8526}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {5365F780-0E6C-41F0-B1B9-7DC34368F80C} = {673F23AE-7694-4BB9-ABD4-136D6C13634E} @@ -668,5 +674,6 @@ Global {27CDB869-A150-4593-958F-6F26E5391E7C} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF} {EBA72C3B-57D5-43FF-A5B4-3D55B3B6D4C2} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF} {D1291B24-EED1-431C-B7CE-606A1D1B5AE8} = {673F23AE-7694-4BB9-ABD4-136D6C13634E} + {E49BEB22-7719-4006-ACB9-90046D1F8526} = {7164F1FB-7F24-444A-ACD2-2C329C2B3CCF} EndGlobalSection EndGlobal diff --git a/src/Testcontainers.Camunda/CamundaBuilder.cs b/src/Testcontainers.Camunda/CamundaBuilder.cs index 231895848..606466e11 100644 --- a/src/Testcontainers.Camunda/CamundaBuilder.cs +++ b/src/Testcontainers.Camunda/CamundaBuilder.cs @@ -43,7 +43,7 @@ protected override CamundaBuilder Init() return base.Init() .WithImage(CamundaImage) .WithPortBinding(CamundaPort, true) - .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("(?s).*listening.*$")); + .WithWaitStrategy(Wait.ForUnixContainer().UntilMessageIsLogged("(?s).*Engine created.*$")); } /// diff --git a/src/Testcontainers.Camunda/CamundaContainer.cs b/src/Testcontainers.Camunda/CamundaContainer.cs index 8c6726eef..fa481fda4 100644 --- a/src/Testcontainers.Camunda/CamundaContainer.cs +++ b/src/Testcontainers.Camunda/CamundaContainer.cs @@ -11,4 +11,15 @@ public sealed class CamundaContainer : DockerContainer public CamundaContainer(IContainerConfiguration configuration) : base(configuration) { } + + /// + /// Gets the Camunda connection string. + /// + /// The Camunda connection string. + public string GetConnectionString() + { + var endpoint = new UriBuilder(Uri.UriSchemeHttp, Hostname, GetMappedPublicPort(CamundaBuilder.CamundaPort)); + endpoint.Path = "engine-rest"; + return endpoint.ToString(); + } } \ No newline at end of file diff --git a/tests/Testcontainers.Camunda.Tests/.editorconfig b/tests/Testcontainers.Camunda.Tests/.editorconfig new file mode 100644 index 000000000..6f066619d --- /dev/null +++ b/tests/Testcontainers.Camunda.Tests/.editorconfig @@ -0,0 +1 @@ +root = true \ No newline at end of file diff --git a/tests/Testcontainers.Camunda.Tests/CamundaContainerTest.cs b/tests/Testcontainers.Camunda.Tests/CamundaContainerTest.cs new file mode 100644 index 000000000..d7ce89d69 --- /dev/null +++ b/tests/Testcontainers.Camunda.Tests/CamundaContainerTest.cs @@ -0,0 +1,31 @@ +namespace Testcontainers.Camunda; + +public sealed class CamundaContainerTest : IAsyncLifetime +{ + private readonly CamundaContainer _camundaContainer = new CamundaBuilder().Build(); + + public Task InitializeAsync() + { + return _camundaContainer.StartAsync(); + } + + public Task DisposeAsync() + { + return _camundaContainer.DisposeAsync().AsTask(); + } + + [Fact] + [Trait(nameof(DockerCli.DockerPlatform), nameof(DockerCli.DockerPlatform.Linux))] + public async Task EstablishesConnection() + { + // Given + var client = CamundaClient.Create(_camundaContainer.GetConnectionString()); + + // When + var response = (await client.ProcessDefinitions.Query(new ProcessDefinitionQuery()).List()) + .Select(x => x.Resource); + + // Then + Assert.Equal(new[] { "reviewInvoice.bpmn", "invoice.v1.bpmn", "invoice.v2.bpmn" }, response); + } +} \ No newline at end of file diff --git a/tests/Testcontainers.Camunda.Tests/Testcontainers.Camunda.Tests.csproj b/tests/Testcontainers.Camunda.Tests/Testcontainers.Camunda.Tests.csproj new file mode 100644 index 000000000..b187bc095 --- /dev/null +++ b/tests/Testcontainers.Camunda.Tests/Testcontainers.Camunda.Tests.csproj @@ -0,0 +1,18 @@ + + + net8.0 + false + false + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/Testcontainers.Camunda.Tests/Usings.cs b/tests/Testcontainers.Camunda.Tests/Usings.cs new file mode 100644 index 000000000..c090a7b57 --- /dev/null +++ b/tests/Testcontainers.Camunda.Tests/Usings.cs @@ -0,0 +1,7 @@ +global using System; +global using System.Linq; +global using System.Threading.Tasks; +global using Camunda.Api.Client; +global using Camunda.Api.Client.ProcessDefinition; +global using DotNet.Testcontainers.Commons; +global using Xunit; From 93d9c049153eaffcdac119c62b5a5b066a502ea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 21:18:07 +0200 Subject: [PATCH 3/8] fix packages props --- Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 921e78075..5e6145cde 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,7 +5,6 @@ - @@ -33,6 +32,7 @@ + From 002e0eb772bf1ff9f4bb16d48c6dfc8c1bb265c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 21:20:50 +0200 Subject: [PATCH 4/8] reformat --- Directory.Packages.props | 114 +++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 5e6145cde..fa57022ab 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,64 +4,64 @@ true - - - - - - - - - - + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 2ec05287c4dfaee87b67b98fcc8a7da937670ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 21:31:24 +0200 Subject: [PATCH 5/8] reformat --- Directory.Packages.props | 113 ++++++++++++++++++++------------------- 1 file changed, 57 insertions(+), 56 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index fa57022ab..f9a6c608f 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,64 +4,65 @@ true - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 8b0e06685747e1fe89745d52a470a0854891d2e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 21:32:52 +0200 Subject: [PATCH 6/8] reformat --- Directory.Packages.props | 131 +++++++++++++++++++-------------------- 1 file changed, 65 insertions(+), 66 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index f9a6c608f..3a429505b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,68 +1,67 @@ - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 86b90c5ab6d23362e619a842c41e8f4154303b02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 21:35:44 +0200 Subject: [PATCH 7/8] change Camunda docker image --- src/Testcontainers.Camunda/CamundaBuilder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Testcontainers.Camunda/CamundaBuilder.cs b/src/Testcontainers.Camunda/CamundaBuilder.cs index 606466e11..98c6372e4 100644 --- a/src/Testcontainers.Camunda/CamundaBuilder.cs +++ b/src/Testcontainers.Camunda/CamundaBuilder.cs @@ -4,7 +4,7 @@ [PublicAPI] public class CamundaBuilder : ContainerBuilder { - public const string CamundaImage = "camunda/camunda-bpm-platform:wildfly-7.22.0-SNAPSHOT"; + public const string CamundaImage = "camunda/camunda-bpm-platform:7.22.0-SNAPSHOT"; public const ushort CamundaPort = 8080; From ce6f968d3e9710b0b777c8ebef5a0a5b7c6efce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20=C5=81yso=C5=84?= Date: Sun, 26 May 2024 21:39:27 +0200 Subject: [PATCH 8/8] mark classes with sealed --- src/Testcontainers.Camunda/CamundaBuilder.cs | 2 +- src/Testcontainers.Camunda/CamundaConfiguration.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Testcontainers.Camunda/CamundaBuilder.cs b/src/Testcontainers.Camunda/CamundaBuilder.cs index 98c6372e4..8abf5f5b4 100644 --- a/src/Testcontainers.Camunda/CamundaBuilder.cs +++ b/src/Testcontainers.Camunda/CamundaBuilder.cs @@ -2,7 +2,7 @@ /// [PublicAPI] -public class CamundaBuilder : ContainerBuilder +public sealed class CamundaBuilder : ContainerBuilder { public const string CamundaImage = "camunda/camunda-bpm-platform:7.22.0-SNAPSHOT"; diff --git a/src/Testcontainers.Camunda/CamundaConfiguration.cs b/src/Testcontainers.Camunda/CamundaConfiguration.cs index b85996ecb..7de9d661c 100644 --- a/src/Testcontainers.Camunda/CamundaConfiguration.cs +++ b/src/Testcontainers.Camunda/CamundaConfiguration.cs @@ -2,7 +2,7 @@ /// [PublicAPI] -public class CamundaConfiguration : ContainerConfiguration +public sealed class CamundaConfiguration : ContainerConfiguration { /// /// Initializes a new instance of the class.