test: add test case - find stub file in jar
This commit is contained in:
@@ -48,7 +48,7 @@ public class ResourcesFileSource implements FileSource {
|
||||
this(toSources(resources));
|
||||
}
|
||||
|
||||
private ResourcesFileSource(FileSource... sources) {
|
||||
protected ResourcesFileSource(FileSource... sources) {
|
||||
this.sources = sources;
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user