Fixed SpringJerseyTest, handled VCRef with username, enabled
VCReferenceTest in test suite.
Change-Id: I1e500b85c010496cae5ed809c4cfa6d7e665cb6a
diff --git a/full/src/test/java/de/ids_mannheim/korap/config/NamedVCLoaderTest.java b/full/src/test/java/de/ids_mannheim/korap/config/NamedVCLoaderTest.java
index b5b218a..3fef08f 100644
--- a/full/src/test/java/de/ids_mannheim/korap/config/NamedVCLoaderTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/config/NamedVCLoaderTest.java
@@ -10,26 +10,36 @@
import de.ids_mannheim.korap.KrillCollection;
import de.ids_mannheim.korap.collection.CachedVCData;
+import de.ids_mannheim.korap.dao.VirtualCorpusDao;
+import de.ids_mannheim.korap.entity.VirtualCorpus;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.util.QueryException;
+import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
-public class NamedVCLoaderTest extends SpringJerseyTest{
+public class NamedVCLoaderTest extends SpringJerseyTest {
@Autowired
private NamedVCLoader vcLoader;
-
-
+ @Autowired
+ private VirtualCorpusDao dao;
+
@Test
- public void testNamedVCLoader () throws IOException, QueryException, KustvaktException {
+ public void testNamedVCLoader ()
+ throws IOException, QueryException, KustvaktException {
+ KrillCollection.cache = CacheManager.newInstance().getCache("named_vc");
Element element = KrillCollection.cache.get("named-vc1");
- assertTrue(element==null);
-
- vcLoader.loadVCToCache();
+ assertTrue(element == null);
+
+ vcLoader.loadVCToCache("named-vc1", "/vc/named-vc1.jsonld");
element = KrillCollection.cache.get("named-vc1");
assertNotNull(element);
CachedVCData cachedData = (CachedVCData) element.getObjectValue();
assertTrue(cachedData.getDocIdMap().size() > 0);
+
+ KrillCollection.cache.removeAll();
+ VirtualCorpus vc = dao.retrieveVCByName("named-vc1", "system");
+ dao.deleteVirtualCorpus(vc);
}
}
diff --git a/full/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java b/full/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
index 36902b4..959dce2 100644
--- a/full/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/config/SpringJerseyTest.java
@@ -5,14 +5,11 @@
import java.util.concurrent.ThreadLocalRandom;
import org.junit.runner.RunWith;
-import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.web.context.support.AbstractRefreshableWebApplicationContext;
+import org.springframework.web.context.support.GenericWebApplicationContext;
import com.sun.jersey.spi.spring.container.servlet.SpringServlet;
import com.sun.jersey.test.framework.AppDescriptor;
@@ -27,7 +24,7 @@
public abstract class SpringJerseyTest extends JerseyTest {
public final static String API_VERSION = "v1.0";
-
+
@Autowired
protected GenericApplicationContext applicationContext;
@@ -36,7 +33,6 @@
"de.ids_mannheim.korap.web.filter",
"de.ids_mannheim.korap.web.utils" };
-
@Override
protected TestContainerFactory getTestContainerFactory ()
throws TestContainerException {
@@ -46,27 +42,13 @@
@Override
public void setUp () throws Exception {
- StaticContextLoaderListener.applicationContext =
- new AbstractRefreshableWebApplicationContext() {
+ GenericWebApplicationContext genericContext =
+ new GenericWebApplicationContext();
- ConfigurableListableBeanFactory existingBeanFactory =
- applicationContext.getBeanFactory();
+ genericContext.setParent(this.applicationContext);
+ genericContext.setClassLoader(this.applicationContext.getClassLoader());
- @Override
- protected void loadBeanDefinitions (
- DefaultListableBeanFactory beanFactory)
- throws BeansException, IOException {
-
- String[] beanDefinitionNames =
- existingBeanFactory.getBeanDefinitionNames();
- for (String beanName : beanDefinitionNames) {
- beanFactory.registerBeanDefinition(beanName,
- existingBeanFactory
- .getBeanDefinition(beanName));
- }
- }
- };
-
+ StaticContextLoaderListener.applicationContext = genericContext;
super.setUp();
}
@@ -80,7 +62,7 @@
// "classpath:test-config.xml")
.build();
}
-
+
@Override
protected int getPort (int defaultPort) {
int port = ThreadLocalRandom.current().nextInt(5000, 8000 + 1);
diff --git a/full/src/test/java/de/ids_mannheim/korap/resource/rewrite/VirtualCorpusRewriteTest.java b/full/src/test/java/de/ids_mannheim/korap/resource/rewrite/VirtualCorpusRewriteTest.java
index a388ae1..04931d8 100644
--- a/full/src/test/java/de/ids_mannheim/korap/resource/rewrite/VirtualCorpusRewriteTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/resource/rewrite/VirtualCorpusRewriteTest.java
@@ -1,18 +1,28 @@
package de.ids_mannheim.korap.resource.rewrite;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
import com.fasterxml.jackson.databind.JsonNode;
import com.google.common.net.HttpHeaders;
import com.sun.jersey.api.client.ClientResponse;
+import de.ids_mannheim.korap.KrillCollection;
import de.ids_mannheim.korap.authentication.http.HttpAuthorizationHandler;
import de.ids_mannheim.korap.config.Attributes;
+import de.ids_mannheim.korap.config.NamedVCLoader;
import de.ids_mannheim.korap.config.SpringJerseyTest;
+import de.ids_mannheim.korap.dao.VirtualCorpusDao;
+import de.ids_mannheim.korap.entity.VirtualCorpus;
import de.ids_mannheim.korap.exceptions.KustvaktException;
+import de.ids_mannheim.korap.util.QueryException;
import de.ids_mannheim.korap.utils.JsonUtils;
+import net.sf.ehcache.CacheManager;
/**
* @author margaretha
@@ -20,8 +30,36 @@
*/
public class VirtualCorpusRewriteTest extends SpringJerseyTest {
+ @Autowired
+ private NamedVCLoader vcLoader;
+ @Autowired
+ private VirtualCorpusDao dao;
+
@Test
- public void testSearchFreeWithVCRef () throws KustvaktException {
+ public void testNoRewriteWithCachedVCRef ()
+ throws KustvaktException, IOException, QueryException {
+ KrillCollection.cache = CacheManager.newInstance().getCache("named_vc");
+ vcLoader.loadVCToCache("named-vc1", "/vc/named-vc1.jsonld");
+
+ ClientResponse response = resource().path(API_VERSION).path("search")
+ .queryParam("q", "[orth=der]").queryParam("ql", "poliqarp")
+ .queryParam("cq", "referTo named-vc1")
+ .get(ClientResponse.class);
+
+ String ent = response.getEntity(String.class);
+ JsonNode node = JsonUtils.readTree(ent);
+ node = node.at("/collection");
+
+ assertEquals("koral:docGroup", node.at("/@type").asText());
+ assertTrue(node.at("/operands/1/rewrites").isMissingNode());
+
+ KrillCollection.cache.removeAll();
+ VirtualCorpus vc = dao.retrieveVCByName("named-vc1", "system");
+ dao.deleteVirtualCorpus(vc);
+ }
+
+ @Test
+ public void testRewriteFreeAndSystemVCRef () throws KustvaktException, Exception {
ClientResponse response = resource().path(API_VERSION).path("search")
.queryParam("q", "[orth=der]").queryParam("ql", "poliqarp")
.queryParam("cq", "referTo \"system VC\"")
@@ -32,18 +70,24 @@
node = node.at("/collection");
assertEquals("koral:docGroup", node.at("/@type").asText());
- assertEquals(3, node.at("/operands/1/rewrites").size());
+ assertEquals("koral:doc", node.at("/operands/0/@type").asText());
+
+ assertEquals("koral:doc", node.at("/operands/1/@type").asText());
+ assertEquals("GOE", node.at("/operands/1/value").asText());
+ assertEquals("corpusSigle", node.at("/operands/1/key").asText());
+
node = node.at("/operands/1/rewrites");
+ assertEquals(3, node.size());
assertEquals("operation:deletion", node.at("/0/operation").asText());
assertEquals("operation:deletion", node.at("/1/operation").asText());
assertEquals("operation:insertion", node.at("/2/operation").asText());
}
@Test
- public void testSearchPubWithVCRef () throws KustvaktException {
+ public void testRewritePubAndSystemVCRef () throws KustvaktException {
ClientResponse response = resource().path(API_VERSION).path("search")
.queryParam("q", "[orth=der]").queryParam("ql", "poliqarp")
- .queryParam("cq", "referTo \"system VC\"")
+ .queryParam("cq", "referTo \"system/system VC\"")
.header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
.createBasicAuthorizationHeaderValue("user", "pass"))
.header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
@@ -54,9 +98,31 @@
node = node.at("/collection");
assertEquals("koral:docGroup", node.at("/@type").asText());
assertEquals("koral:docGroup", node.at("/operands/0/@type").asText());
- assertEquals(3, node.at("/operands/1/rewrites").size());
- assertEquals("koral:doc", node.at("/operands/1/@type").asText());
- assertEquals("GOE", node.at("/operands/1/value").asText());
- assertEquals("corpusSigle", node.at("/operands/1/key").asText());
+
+ node = node.at("/operands/1/rewrites");
+ assertEquals(3, node.size());
+ assertEquals("operation:deletion", node.at("/0/operation").asText());
+ assertEquals("operation:deletion", node.at("/1/operation").asText());
+ assertEquals("operation:insertion", node.at("/2/operation").asText());
+ }
+
+ @Test
+ public void testRewriteWithDoryVCRef ()
+ throws KustvaktException, IOException, QueryException {
+
+ ClientResponse response = resource().path(API_VERSION).path("search")
+ .queryParam("q", "Fisch").queryParam("ql", "poliqarp")
+ .queryParam("cq", "referTo \"dory/dory VC\"")
+ .header(Attributes.AUTHORIZATION, HttpAuthorizationHandler
+ .createBasicAuthorizationHeaderValue("dory", "pass"))
+ .get(ClientResponse.class);
+
+ String ent = response.getEntity(String.class);
+ JsonNode node = JsonUtils.readTree(ent);
+ node = node.at("/collection");
+// System.out.println(node);
+ assertEquals("koral:docGroup", node.at("/@type").asText());
+ node = node.at("/operands/1/rewrites");
+ assertEquals(3, node.size());
}
}
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
index c7f06e1..1c59d76 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/OAuth2ClientControllerTest.java
@@ -382,6 +382,8 @@
testAccessTokenAfterUpgradingClient(clientId, accessToken);
testAccessTokenAfterDegradingSuperClient(clientId, accessToken);
+
+ testDeregisterConfidentialClient(clientId, clientSecret);
}
// old access tokens retain their scopes
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/VCReferenceTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/VCReferenceTest.java
index 4ce02ff..55f289d 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/VCReferenceTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/VCReferenceTest.java
@@ -1,38 +1,56 @@
package de.ids_mannheim.korap.web.controller;
import static org.junit.Assert.assertEquals;
-
import static org.junit.Assert.assertTrue;
import java.io.IOException;
-import org.junit.Ignore;
import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
import com.fasterxml.jackson.databind.JsonNode;
import com.sun.jersey.api.client.ClientResponse;
+import de.ids_mannheim.korap.KrillCollection;
+import de.ids_mannheim.korap.config.NamedVCLoader;
import de.ids_mannheim.korap.config.SpringJerseyTest;
+import de.ids_mannheim.korap.dao.VirtualCorpusDao;
+import de.ids_mannheim.korap.entity.VirtualCorpus;
import de.ids_mannheim.korap.exceptions.KustvaktException;
import de.ids_mannheim.korap.util.QueryException;
import de.ids_mannheim.korap.utils.JsonUtils;
+import net.sf.ehcache.CacheManager;
public class VCReferenceTest extends SpringJerseyTest {
- // auto caching is disabled in krill
- @Ignore
+ @Autowired
+ private NamedVCLoader vcLoader;
+ @Autowired
+ private VirtualCorpusDao dao;
+
@Test
public void testVCRef ()
throws KustvaktException, IOException, QueryException {
testSearchWithoutVCRefOr();
testSearchWithoutVCRefAnd();
- // auto caching
+ KrillCollection.cache = CacheManager.newInstance().getCache("named_vc");
+ vcLoader.loadVCToCache("named-vc1", "/vc/named-vc1.jsonld");
testStatisticsWithVCReference();
+
+ // TODO: test auto-caching (disabled in krill)
+ vcLoader.loadVCToCache("named-vc2", "/vc/named-vc2.jsonld");
testSearchWithVCRefNotEqual();
+
// retrieve from cache
testSearchWithVCRefEqual();
testSearchWithVCRefNotEqual();
+
+ KrillCollection.cache.removeAll();
+ VirtualCorpus vc = dao.retrieveVCByName("named-vc1", "system");
+ dao.deleteVirtualCorpus(vc);
+ vc = dao.retrieveVCByName("named-vc2", "system");
+ dao.deleteVirtualCorpus(vc);
}
private void testSearchWithoutVCRefOr () throws KustvaktException {