wiremock/wiremock-testcontainers-java

Idea: Unify methods to get endpoint url

Aperta

#33 aperta il 2 mag 2023

 (1 commento) (1 reazione) (0 assegnatari)Java (13 fork)auto 404
enhancementhelp wantedtestcontainers

Metriche repository

Star
 (66 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

Proposal

Goal is to simplify public interface of the WireMockContainer class

Current methods

public String getEndpoint() {
  return String.format("http://%s:%d", getHost(), getMappedPort(PORT));
}
public URI getRequestURI(String relativePath) throws URISyntaxException {
  return new URI(getEndpoint() + "/" + relativePath);
}

Option 1

Align method names with WireMockServer class

public String baseUrl() {
  return String.format("http://%s:%d", getHost(), getMappedPort(PORT));
}
public String url(String path) {
  if (!path.startsWith("/")) {
    path = "/" + path;
  }
  return baseUrl() + path;
}

Motivation

  1. Simplify switch from Embedded wiremock to Testcontainer
  2. Familiar api for developers

Option 2

  public String getEndpoint() {
    return String.format("http://%s:%d", getHost(), getMappedPort(PORT));
  }
  public String getEndpoint(String path) {
    if (!path.startsWith("/")) {
      path = "/" + path;
    }
    return getEndpoint() + path
  }

Motivation

  1. Use Overloaded methods getEndpoint
    • naming consistency
    • easier for developer to memorize and intuitively understand what method does
  2. Allow path to be with / and without it
  • simplify switch from WireMockServer to WireMockTestcontainer

References

No response

Guida contributor