CreateServletTest.java
/*******************************************************************************
* Copyright (c) 2015 Eclipse RDF4J contributors, Aduna, and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*******************************************************************************/
package org.eclipse.rdf4j.workbench.commands;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import org.eclipse.rdf4j.common.exception.RDF4JException;
import org.eclipse.rdf4j.repository.config.RepositoryConfig;
import org.eclipse.rdf4j.repository.manager.LocalRepositoryManager;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
/**
* @author Dale Visser
*/
public class CreateServletTest {
@TempDir
static File datadir;
static CreateServlet servlet;
@BeforeAll
public static void setUpServlet() {
servlet = new CreateServlet();
servlet.setRepositoryManager(new LocalRepositoryManager(datadir));
}
private static final String[] EXPECTED_TEMPLATES = new String[] { "memory-customrule", "memory-rdfs-dt",
"memory-rdfs", "memory",
"native-customrule", "native-rdfs-dt", "native-rdfs", "native", "remote", "sparql", "memory-shacl",
"native-shacl" };
/**
* Regression test for SES-1907.
*/
@Test
public final void testExpectedTemplatesCanBeResolved() {
for (String template : EXPECTED_TEMPLATES) {
String resource = template + ".ttl";
assertThat(RepositoryConfig.class.getResourceAsStream(resource)).isNotNull().as(resource);
}
}
@Test
public final void testExpectedTemplatesCanBeLoaded() throws IOException {
for (String template : EXPECTED_TEMPLATES) {
assertThat(CreateServlet.getConfigTemplate(template).getTemplate()).isNotNull();
}
}
@Test
public void testUpdateRepositoryConfig_legacyConfig() {
var servlet = new CreateServlet();
servlet.setRepositoryManager(new LocalRepositoryManager(datadir));
var in = getClass().getResourceAsStream("/configFiles/memory-legacy.ttl");
try {
String legacyConfigString = new String(in.readAllBytes(), StandardCharsets.UTF_8);
RepositoryConfig config = servlet.updateRepositoryConfig(legacyConfigString);
assertThat(config.getID()).isEqualTo("legacy");
assertThat(config.getTitle()).isEqualTo("Legacy Test Repository");
} catch (RDF4JException | IOException e) {
fail(e.getMessage());
}
}
@Test
public void testUpdateRepositoryConfig_newConfig() {
var servlet = new CreateServlet();
servlet.setRepositoryManager(new LocalRepositoryManager(datadir));
var in = getClass().getResourceAsStream("/configFiles/memory.ttl");
try {
String legacyConfigString = new String(in.readAllBytes(), StandardCharsets.UTF_8);
RepositoryConfig config = servlet.updateRepositoryConfig(legacyConfigString);
assertThat(config.getID()).isEqualTo("test");
assertThat(config.getTitle()).isEqualTo("test store");
} catch (RDF4JException | IOException e) {
fail(e.getMessage());
}
}
@Test
public void testUpdateRepositoryConfig_useLegacy_legacyConfig() {
var in = getClass().getResourceAsStream("/configFiles/memory-legacy.ttl");
try {
System.setProperty("org.eclipse.rdf4j.model.vocabulary.useLegacyConfig", "true");
String legacyConfigString = new String(in.readAllBytes(), StandardCharsets.UTF_8);
RepositoryConfig config = servlet.updateRepositoryConfig(legacyConfigString);
System.setProperty("org.eclipse.rdf4j.model.vocabulary.useLegacyConfig", "");
assertThat(config.getID()).isEqualTo("legacy");
assertThat(config.getTitle()).isEqualTo("Legacy Test Repository");
} catch (RDF4JException | IOException e) {
fail(e.getMessage());
}
}
}