test: add test case - find stub file in jar

This commit is contained in:
Huneea
2022-09-01 04:11:45 +09:00
parent 51045cc97e
commit 0047ae451d
3 changed files with 31 additions and 1 deletions

View File

@@ -48,7 +48,7 @@ public class ResourcesFileSource implements FileSource {
this(toSources(resources));
}
private ResourcesFileSource(FileSource... sources) {
protected ResourcesFileSource(FileSource... sources) {
this.sources = sources;
}

View File

@@ -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();
}
}