Skip to content

Commit

Permalink
Fixed #1684 - Expose remove stub mapping by ID (#1986)
Browse files Browse the repository at this point in the history
* Fixed #1684 - Expose RemoveStubMappingTask through HttpAdminClient

* Fixed #1684 - Fix OldRemoveStubMappingTaskTest test name

* Fixed #1684 - Add (Old)RemoveStubMappingTask acceptance tests

* Fixed #1684 - Remove (Old)RemoveStubMappingTask unit tests
  • Loading branch information
Patrolfr committed Oct 25, 2022
1 parent 6cfd74d commit a137ab1
Show file tree
Hide file tree
Showing 7 changed files with 51 additions and 63 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,11 @@ public void removeStubMapping(StubMapping stubMapping) {
wireMockApp.removeStubMapping(stubMapping);
}

@Override
public void removeStubMapping(UUID id) {
wireMockApp.removeStubMapping(id);
}

@Override
public void verify(RequestPatternBuilder requestPatternBuilder) {
client.verifyThat(requestPatternBuilder);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,14 @@ public void removeStubMapping(StubMapping stubbMapping) {
postJsonAssertOkAndReturnBody(urlFor(OldRemoveStubMappingTask.class), Json.write(stubbMapping));
}

@Override
public void removeStubMapping(UUID id) {
executeRequest(
adminRoutes.requestSpecForTask(RemoveStubMappingTask.class),
PathParams.single("id", id),
Void.class);
}

@Override
public ListStubMappingsResult listAllStubMappings() {
return executeRequest(
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/github/tomakehurst/wiremock/core/Admin.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ public interface Admin {

void removeStubMapping(StubMapping stubbMapping);

void removeStubMapping(UUID id);

ListStubMappingsResult listAllStubMappings();

SingleStubMappingResult getStubMapping(UUID id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,14 @@ public void removeStubMapping(StubMapping stubMapping) {
stubMappings.removeMapping(stubMapping);
}

@Override
public void removeStubMapping(UUID id) {
final Optional<StubMapping> maybeStub = stubMappings.get(id);
if (maybeStub.isPresent()) {
removeStubMapping(maybeStub.get());
}
}

@Override
public void editStubMapping(StubMapping stubMapping) {
stubMappings.editMapping(stubMapping);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ public void removeStubMapping(StubMapping stubbMapping) {
admin.removeStubMapping(stubbMapping);
}

@Override
public void removeStubMapping(UUID id) {
admin.removeStubMapping(id);
}

@Override
public ListStubMappingsResult listAllStubMappings() {
return admin.listAllStubMappings();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1004,6 +1004,29 @@ public void jsonResponseWithObjectValue() {
assertThat(response.content(), containsString("\"Json From Object\""));
}

@Test
public void removesASingleStubMapping() {
final UUID id = UUID.randomUUID();
stubFor(get("/stub-to-remove").withId(id).willReturn(aResponse()));

assertThat(testClient.get("/stub-to-remove").statusCode(), is(200));

StubMapping stub = wireMockServer.getSingleStubMapping(id);
wireMockServer.removeStubMapping(stub);
assertThat(testClient.get("/stub-to-remove").statusCode(), is(404));
}

@Test
public void removesASingleStubMappingById() {
final UUID id = UUID.randomUUID();
stubFor(get("/stub-to-remove-by-id").withId(id).willReturn(aResponse()));

assertThat(testClient.get("/stub-to-remove-by-id").statusCode(), is(200));

wireMockServer.removeStubMapping(id);
assertThat(testClient.get("/stub-to-remove-by-id").statusCode(), is(404));
}

private int getStatusCodeUsingJavaUrlConnection(String url) throws IOException {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
connection.setRequestMethod("GET");
Expand Down

This file was deleted.

0 comments on commit a137ab1

Please sign in to comment.