60 lines
1.9 KiB
Java
60 lines
1.9 KiB
Java
package de.nclazz.resources;
|
|
|
|
import lombok.SneakyThrows;
|
|
import org.apache.commons.io.IOUtils;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.io.InputStream;
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
class ResourceRepositoryTest {
|
|
|
|
ResourceRepository createManager() {
|
|
|
|
ResourceRepository manager = new ResourceRepository();
|
|
manager.addMapping("test.resource.exists", ResourceMapping.builder()
|
|
.defaultResource(Resource.fromClasspath("/data/airplane.png"))
|
|
.build())
|
|
.addMapping("test.resource.helloworld.default", ResourceMapping.builder()
|
|
.defaultResource(Resource.fromClasspath("/data/helloworld.txt"))
|
|
.build())
|
|
.addMapping("test.resource.helloworld", ResourceMapping.builder()
|
|
.definedResource(Resource.fromClasspath("/data/hellospecific.txt"))
|
|
.build());
|
|
|
|
return manager;
|
|
}
|
|
|
|
@SneakyThrows
|
|
String stringFromInputStream(InputStream stream) {
|
|
return IOUtils.toString(stream, StandardCharsets.UTF_8);
|
|
}
|
|
|
|
@Test
|
|
void getResourceForKey() {
|
|
ResourceRepository manager = createManager();
|
|
|
|
assertTrue(manager.getMapping("test.resource.exists").isPresent());
|
|
assertFalse(manager.getMapping("test.resource.noexists").isPresent());
|
|
}
|
|
|
|
@Test
|
|
void getDefaultOrDefinedResource() {
|
|
|
|
ResourceRepository manager = createManager();
|
|
|
|
assertEquals("Hello World!", manager.getResource("test.resource.helloworld.default")
|
|
.flatMap(Resource::getInputStream)
|
|
.map(this::stringFromInputStream)
|
|
.orElse(""));
|
|
|
|
assertEquals("Hello Specific!", manager.getResource("test.resource.helloworld")
|
|
.flatMap(Resource::getInputStream)
|
|
.map(this::stringFromInputStream)
|
|
.orElse(""));
|
|
}
|
|
|
|
|
|
} |