testcontainers / testcontainers-dotnet

A library to support tests with throwaway instances of Docker containers for all compatible .NET Standard versions.
https://dotnet.testcontainers.org
MIT License
3.82k stars 278 forks source link

[Enhancement]: Support Neo4J Enterprise #1261

Closed Sossenbinder closed 1 month ago

Sossenbinder commented 2 months ago

Problem

It seems that the current Neo4J Container is only built with the regular neo4j community version image in mind.

However, there is also the possibility of using a licensed enterprise edition, which offers quite a few distinct features (https://neo4j.com/pricing/) which would make a difference even in a testing context.

I know about the possibility to define a custom image with the .WithImage(...) method on the builder, but the enterprise version also requires an environment variable to be set, in order to work at all (NEO4J_ACCEPT_LICENSE_AGREEMENT=yes).

Solution

For convenience reasons, it would be neat to have a public .WithEnterpriseEdition(...) method on the builder which sets both the image and the environment variable right away.

This is also the public API Java TestContainers provide (https://java.testcontainers.org/modules/databases/neo4j/#choose-your-neo4j-license)

Benefit

Purely QoL, there are no immediate functional benefits.

Alternatives

I assume the current alternative is to just build an extension method yourself, or to just type out the two methods on the builder

Would you like to help contributing this enhancement?

Yes

HofmeisterAn commented 2 months ago

Implementing it similar to Java sounds like a good idea. For .NET, we probably need a guard in the Build() method too, that throws an exception if the configuration is invalid.