blob: 0c1dce00c7fda6ba87105baec2fd5189bc15f55d [file] [log] [blame]
package de.ids_mannheim.korap.web;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.net.URI;
import java.util.Set;
import org.eclipse.jetty.http.HttpStatus;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import de.ids_mannheim.korap.config.KustvaktConfiguration;
import de.ids_mannheim.korap.config.SpringJerseyTest;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import jakarta.ws.rs.core.MediaType;
import jakarta.ws.rs.core.Response;
/**
* @author margaretha
*/
public class APIVersionTest extends SpringJerseyTest {
@Autowired
private KustvaktConfiguration config;
@Test
public void testSearchWithoutVersion () throws KustvaktException {
Response response = target().path("api").path("search")
.queryParam("q", "[orth=der]").queryParam("ql", "poliqarp")
.request().accept(MediaType.APPLICATION_JSON).get();
assertEquals(HttpStatus.PERMANENT_REDIRECT_308, response.getStatus());
URI location = response.getLocation();
assertEquals("/api/" + API_VERSION + "/search", location.getPath());
}
@Test
public void testSearchWrongVersion () throws KustvaktException {
Response response = target().path("api").path("v0.2").path("search")
.queryParam("q", "[orth=der]").queryParam("ql", "poliqarp")
.request().accept(MediaType.APPLICATION_JSON).get();
assertEquals(HttpStatus.PERMANENT_REDIRECT_308, response.getStatus());
URI location = response.getLocation();
assertEquals("/api/" + API_VERSION + "/search", location.getPath());
}
@Test
public void testSupportedVersions () {
Set<String> versions = config.getSupportedVersions();
assertEquals(2, versions.size());
String version = versions.stream().findFirst().orElse("");
assertEquals(4, version.length());
}
}