WireMock-Net / WireMock.Net

WireMock.Net is a flexible product for stubbing and mocking web HTTP responses using advanced request matching and response templating. Based on the functionality from http://WireMock.org, but extended with more functionality.
Apache License 2.0
1.41k stars 209 forks source link

Ability To Pin WireMock.NET Test Container To A Particular Version Of WireMock.NET #1150

Closed Xor-el closed 1 month ago

Xor-el commented 3 months ago

Is your feature request related to a problem? Please describe.

As of today, it is not possible to anchor a WireMock.NET test container to a specific version of WireMock, unlike other test containers such as Redis and SQL Server that offer this capability. Recently, the SQL Server Docker Image incorporated a breaking change, which subsequently disrupted SQL Server test containers in numerous CI/CD pipelines where the image was not pinned to a fixed version. Fortunately, these containers permit version pinning, thereby providing a provisional solution for development teams while the underlying issue is addressed.

Furthermore, it is deemed best practice by the test container team to consistently pin the image to a specific version.

Describe the solution you'd like Having the ability to pin the needed WireMock.NET version when building a WireMock.NET test container would be a welcome development.

Describe alternatives you've considered N/A

Is your feature request supported by WireMock (java version)? Please provide details. Provide relevant information if requested feature is supported in Handlebarsjs but is missing in our implementation. N/A

Additional context N/A

StefH commented 1 month ago

https://github.com/WireMock-Net/WireMock.Net/pull/1181

StefH commented 1 month ago

@Xor-el This is already possible.

By default you would use this code:

var container = new WireMockContainerBuilder()
            .WithAdminUserNameAndPassword("x", "y")
            .WithAutoRemove(true)
            .WithCleanUp(true)
            .Build();

And in case you want to use a different version, use:

var container = new WireMockContainerBuilder()
            .WithImage("sheyenrath/wiremock.net-alpine:1.6.4")
            .WithAdminUserNameAndPassword("x", "y")
            .WithAutoRemove(true)
            .WithCleanUp(true)
            .Build();
Xor-el commented 1 month ago

Hello @StefH thanks for the sample and changes. very much appreciated.

StefH commented 1 month ago

If you have time, can you also take a quick look at the PR https://github.com/WireMock-Net/WireMock.Net/pull/1181

If it's correct, I'll merge this PR to master.

Xor-el commented 1 month ago

PR looks good to me. I just added one minor comment, please take a look at it.

StefH commented 1 month ago

PR looks good to me. I just added one minor comment, please take a look at it.

I cannot see your comment? Did you save it?

Xor-el commented 1 month ago

PR looks good to me. I just added one minor comment, please take a look at it.

I cannot see your comment? Did you save it?

apologies, submitted now