resource-manager/resource-manager-api/src/test/java/de/nclazz/resources/ResourceRepositoryTest.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(""));
}
}