From 0047ae451d8f180091f61dc7ba253ab2a5336bbd Mon Sep 17 00:00:00 2001 From: Huneea Date: Thu, 1 Sep 2022 04:11:45 +0900 Subject: [PATCH] test: add test case - find stub file in jar --- .../wiremock/file/ResourcesFileSource.java | 2 +- .../file/ResourcesFileSourceTest.java | 30 ++++++++++++++++++ .../jarfiles/module-banner-test-fixtures.jar | Bin 0 -> 1146 bytes 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 spring-cloud-contract-wiremock/src/test/resources/jarfiles/module-banner-test-fixtures.jar diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java index 5dfaae76c2..56388ff9f4 100644 --- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java +++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSource.java @@ -48,7 +48,7 @@ public class ResourcesFileSource implements FileSource { this(toSources(resources)); } - private ResourcesFileSource(FileSource... sources) { + protected ResourcesFileSource(FileSource... sources) { this.sources = sources; } diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSourceTest.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSourceTest.java index a83c5e6707..911b03f0a4 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSourceTest.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/file/ResourcesFileSourceTest.java @@ -16,15 +16,25 @@ package org.springframework.cloud.contract.wiremock.file; +import com.github.tomakehurst.wiremock.common.BinaryFile; +import com.github.tomakehurst.wiremock.common.ClasspathFileSource; import com.github.tomakehurst.wiremock.common.FileSource; +import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import static org.assertj.core.api.Assertions.assertThat; +@ExtendWith(MockitoExtension.class) class ResourcesFileSourceTest { @DisplayName("find all files in the multiple files directories.") @@ -57,4 +67,24 @@ class ResourcesFileSourceTest { assertThat(resourcesFileSource.getBinaryFileNamed("response-noticeList-success.json").getStream()).isNotEmpty(); } + @DisplayName("find a stub file in jar") + @Test + void find_stub_file_in_jar() throws URISyntaxException { + + // given + ClassLoader classLoader = getClass().getClassLoader(); + File file = new File(classLoader.getResource("jarfiles/module-banner-test-fixtures.jar").getFile()); + + String bannerStubPathInJar = "jar:file:" + file.getAbsolutePath() + "!/wiremock/banner/__files"; + String bannerStubFilename = "response-bannerList-success.json"; + ClasspathFileSource classpathFileSource1 = mock(ClasspathFileSource.class); + when(classpathFileSource1.getUri()).thenReturn(new URI(bannerStubPathInJar)); + when(classpathFileSource1.exists()).thenReturn(true); + when(classpathFileSource1.getBinaryFileNamed(bannerStubFilename)).thenReturn(new BinaryFile(new URI(bannerStubPathInJar + "/response-bannerList-success.json"))); + ResourcesFileSource resourcesFileSource = new ResourcesFileSource(classpathFileSource1); + + // when & then + assertThat(resourcesFileSource.getBinaryFileNamed(bannerStubFilename).getStream()).isNotEmpty(); + } + } diff --git a/spring-cloud-contract-wiremock/src/test/resources/jarfiles/module-banner-test-fixtures.jar b/spring-cloud-contract-wiremock/src/test/resources/jarfiles/module-banner-test-fixtures.jar new file mode 100644 index 0000000000000000000000000000000000000000..95a8bedd0a38da5562eb44ca122d29a3e12e0320 GIT binary patch literal 1146 zcmWIWW@h1HVBp|j(3MvVWdH&u5CH_7KE;?7qUY=O+4sz8A8%c~i@e^tTIbH3-yCFc#rVO~M^Bm13O$=I$t*6>O)VlD{HdL@Xut~|QbQq_UAa;c?d%+?sRuyXy)Et3aw8Y2UP z1&K~8E=^8OEiOiKoR_ZNSxwEbO+g)OMWQ0B4ypt!ve+u1k+FjL@${5wPnIybPT?tJ zRNZmw$)7!wuIv%ov+Ckkk)_Lat4wRiH83(Tx@2x}+1wGZW%3B|JnmtF2DU|N%R zc&&^tzuERkhr4Vl$vd-l?g09Mkx7IZcRB-l1PBBe-a3M4c&bC!hMwv`ia}sWqb87q zYePzd=q7+vBPVbWA7XJCkcOuxeA++>4+22$oeyNfwLz01KHZ>X2mv77=YdRg-LOQ7 yZVGy$gqgFXksX*8aG8QXiK5$qp1KfrEF#ek