blob: fb785084df3395a238da991113e1c46cd1d685ae [file] [log] [blame]
package de.ids_mannheim.korap.web.lite;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.databind.JsonNode;
import jakarta.ws.rs.core.Response;
import jakarta.ws.rs.core.Response.Status;
import de.ids_mannheim.korap.config.LiteJerseyTest;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.exceptions.StatusCodes;
import de.ids_mannheim.korap.utils.JsonUtils;
public class LiteSearchTokenSnippetTest extends LiteJerseyTest {
@Test
public void testSearchWithTokens () throws KustvaktException {
Response response = target().path(API_VERSION).path("search")
.queryParam("q", "[orth=das]").queryParam("ql", "poliqarp")
.queryParam("show-tokens", "true")
.queryParam("context", "sentence").queryParam("count", "13")
.request().get();
assertEquals(Status.OK.getStatusCode(), response.getStatus());
String ent = response.readEntity(String.class);
JsonNode node = JsonUtils.readTree(ent);
assertTrue(node.at("/matches/0/hasSnippet").asBoolean());
assertTrue(node.at("/matches/0/hasTokens").asBoolean());
assertTrue(node.at("/matches/0/tokens/left").size() > 0);
assertTrue(node.at("/matches/0/tokens/right").size() > 0);
assertEquals(1, node.at("/matches/0/tokens/match").size());
}
@Test
public void testSearchWithoutTokens () throws KustvaktException {
Response response = target().path(API_VERSION).path("search")
.queryParam("q", "[orth=das]").queryParam("ql", "poliqarp")
.queryParam("show-tokens", "false")
.queryParam("context", "sentence").queryParam("count", "13")
.request().get();
assertEquals(Status.OK.getStatusCode(), response.getStatus());
String ent = response.readEntity(String.class);
JsonNode node = JsonUtils.readTree(ent);
assertTrue(node.at("/matches/0/hasSnippet").asBoolean());
assertFalse(node.at("/matches/0/hasTokens").asBoolean());
assertTrue(node.at("/matches/0/tokens").isMissingNode());
}
@Test
public void testSearchPublicMetadataWithTokens () throws KustvaktException {
Response response = target().path(API_VERSION).path("search")
.queryParam("q", "[orth=das]").queryParam("ql", "poliqarp")
.queryParam("access-rewrite-disabled", "true")
.queryParam("show-tokens", "true")
.queryParam("context", "sentence").queryParam("count", "13")
.request().get();
assertEquals(Status.OK.getStatusCode(), response.getStatus());
String ent = response.readEntity(String.class);
JsonNode node = JsonUtils.readTree(ent);
assertFalse(node.at("/matches/0/hasSnippet").asBoolean());
assertFalse(node.at("/matches/0/hasTokens").asBoolean());
assertTrue(node.at("/matches/0/snippet").isMissingNode());
assertTrue(node.at("/matches/0/tokens").isMissingNode());
assertEquals(StatusCodes.NOT_ALLOWED, node.at("/warnings/0/0").asInt());
}
}