Skip to content

Commit 2cf30b5

Browse files
committed
Fixed wiremock#2361 - saved mapping filenames missing extension when running standalone
1 parent b3659fb commit 2cf30b5

File tree

3 files changed

+30
-14
lines changed

3 files changed

+30
-14
lines changed

src/main/java/com/github/tomakehurst/wiremock/common/filemaker/FilenameMaker.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,12 @@ public class FilenameMaker {
3737
private final String filenameTemplate;
3838

3939
public FilenameMaker() {
40-
this.templateEngine = defaultTemplateEngine();
41-
this.filenameTemplate = DEFAULT_FILENAME_TEMPLATE + DEFAULT_EXTENSION;
40+
this(null);
4241
}
4342

4443
public FilenameMaker(String filenameTemplate) {
4544
this.templateEngine = defaultTemplateEngine();
46-
this.filenameTemplate = filenameTemplate;
45+
this.filenameTemplate = filenameTemplate != null ? filenameTemplate : DEFAULT_FILENAME_TEMPLATE + DEFAULT_EXTENSION;
4746
}
4847

4948
public FilenameMaker(String filenameTemplate, String extension) {

src/main/java/com/github/tomakehurst/wiremock/standalone/CommandLineOptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import static com.github.tomakehurst.wiremock.common.BrowserProxySettings.DEFAULT_CA_KEYSTORE_PATH;
2020
import static com.github.tomakehurst.wiremock.common.Exceptions.throwUnchecked;
2121
import static com.github.tomakehurst.wiremock.common.ProxySettings.NO_PROXY;
22-
import static com.github.tomakehurst.wiremock.common.filemaker.FilenameMaker.DEFAULT_FILENAME_TEMPLATE;
2322
import static com.github.tomakehurst.wiremock.core.WireMockApp.MAPPINGS_ROOT;
2423
import static com.github.tomakehurst.wiremock.http.CaseInsensitiveKey.TO_CASE_INSENSITIVE_KEYS;
2524

@@ -415,7 +414,8 @@ private String getFilenameTemplateOption() {
415414
validateFilenameTemplate(filenameTemplate);
416415
return filenameTemplate;
417416
}
418-
return DEFAULT_FILENAME_TEMPLATE;
417+
418+
return null;
419419
}
420420

421421
private void validateFilenameTemplate(String filenameTemplate) {

src/test/java/com/github/tomakehurst/wiremock/StandaloneAcceptanceTest.java

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@
2424
import static java.nio.file.Files.createDirectories;
2525
import static java.nio.file.Files.write;
2626
import static java.util.Arrays.asList;
27+
import static java.util.Objects.requireNonNull;
2728
import static org.hamcrest.MatcherAssert.assertThat;
28-
import static org.hamcrest.Matchers.allOf;
29-
import static org.hamcrest.Matchers.containsString;
30-
import static org.hamcrest.Matchers.is;
31-
import static org.hamcrest.Matchers.not;
29+
import static org.hamcrest.Matchers.*;
3230
import static org.junit.jupiter.api.Assertions.assertThrows;
3331
import static org.junit.jupiter.api.Assertions.fail;
3432

@@ -56,6 +54,7 @@
5654
import org.junit.jupiter.api.AfterEach;
5755
import org.junit.jupiter.api.BeforeEach;
5856
import org.junit.jupiter.api.Test;
57+
import org.junit.jupiter.api.io.TempDir;
5958

6059
public class StandaloneAcceptanceTest {
6160
private static final String FILES = "__files";
@@ -291,7 +290,7 @@ public void respondsWithPreExistingRecordingInProxyMode() throws Exception {
291290
}
292291

293292
@Test
294-
public void recordsProxiedRequestsWhenSpecifiedOnCommandLine() throws Exception {
293+
public void recordsProxiedRequestsWhenSpecifiedOnCommandLineViaLegacyRecorder() throws Exception {
295294
WireMock otherServerClient = startOtherServerAndClient();
296295
startRunner("--record-mappings");
297296
givenThat(
@@ -310,7 +309,7 @@ public void recordsProxiedRequestsWhenSpecifiedOnCommandLine() throws Exception
310309
}
311310

312311
@Test
313-
public void recordsRequestHeadersWhenSpecifiedOnCommandLine() throws Exception {
312+
public void recordsRequestHeadersWhenSpecifiedOnCommandLineViaLegacyRecorder() throws Exception {
314313
WireMock otherServerClient = startOtherServerAndClient();
315314
startRunner("--record-mappings", "--match-headers", "Accept");
316315
givenThat(
@@ -328,7 +327,7 @@ public void recordsRequestHeadersWhenSpecifiedOnCommandLine() throws Exception {
328327
}
329328

330329
@Test
331-
public void recordsGzippedResponseBodiesDecompressed() throws Exception {
330+
public void recordsGzippedResponseBodiesDecompressedViaLegacyRecorder() {
332331
WireMock otherServerClient = startOtherServerAndClient();
333332
startRunner("--record-mappings");
334333
givenThat(
@@ -344,6 +343,24 @@ public void recordsGzippedResponseBodiesDecompressed() throws Exception {
344343
assertThat(filesDirectory, containsAFileContaining("gzipped body"));
345344
}
346345

346+
@Test
347+
void recordsGzippedResponseBodiesDecompressedViaNewRecorder(@TempDir Path tempFileRoot) {
348+
WireMock target = startOtherServerAndClient();
349+
350+
startRunner("--root-dir", tempFileRoot.toString());
351+
352+
target.register(get("/record-this").willReturn(ok("Recorded")));
353+
354+
startRecording(otherServer.baseUrl());
355+
testClient.get("/record-this");
356+
stopRecording();
357+
358+
assertThat(Arrays.stream(requireNonNull(tempFileRoot.resolve("mappings").toFile().list()))
359+
.filter(name -> name.contains("record-this"))
360+
.findFirst()
361+
.get(), endsWith(".json"));
362+
}
363+
347364
@Test
348365
public void matchesVeryLongHeader() {
349366
startRunner("--jetty-header-buffer-size", "32678");
@@ -624,7 +641,7 @@ public void describeTo(Description desc) {
624641

625642
@Override
626643
public boolean matchesSafely(File dir) {
627-
return Arrays.stream(Objects.requireNonNull(dir.list())).noneMatch(contains(namePart));
644+
return Arrays.stream(requireNonNull(dir.list())).noneMatch(contains(namePart));
628645
}
629646
};
630647
}
@@ -640,7 +657,7 @@ public void describeTo(Description desc) {
640657
@Override
641658
public boolean matchesSafely(File dir) {
642659
return (int)
643-
Arrays.stream(Objects.requireNonNull(dir.list())).filter(contains(namePart)).count()
660+
Arrays.stream(requireNonNull(dir.list())).filter(contains(namePart)).count()
644661
== 1;
645662
}
646663
};

0 commit comments

Comments
 (0)