97 lines
3.4 KiB
Java
97 lines
3.4 KiB
Java
package org.gcube.informationsystem.resourceregistry.queries;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.File;
|
|
import java.io.FileReader;
|
|
import java.net.URL;
|
|
|
|
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
|
|
import org.gcube.com.fasterxml.jackson.databind.ObjectMapper;
|
|
import org.gcube.informationsystem.resourceregistry.ContextTest;
|
|
import org.gcube.informationsystem.resourceregistry.queries.json.JsonQuery;
|
|
import org.junit.Assert;
|
|
import org.junit.Test;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
/**
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
public class JsonQueryTest extends ContextTest {
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(JsonQueryTest.class);
|
|
|
|
public File getQueriesDirectory() throws Exception {
|
|
URL logbackFileURL = JsonQueryTest.class.getClassLoader().getResource("logback-test.xml");
|
|
File logbackFile = new File(logbackFileURL.toURI());
|
|
File resourcesDirectory = logbackFile.getParentFile();
|
|
return new File(resourcesDirectory, "queries");
|
|
}
|
|
|
|
@Test
|
|
public void testJsonQueries() throws Exception {
|
|
ContextTest.setContextByName(DEVVRE);
|
|
|
|
File queriesDirectory = getQueriesDirectory();
|
|
|
|
for(int i=1; i<7; i++) {
|
|
File jsonQueryFile = new File(queriesDirectory, "query" + i + ".json");
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
JsonNode jsonNode = objectMapper.readTree(jsonQueryFile);
|
|
logger.info("Going to test the following JSON query {}", jsonNode.toString());
|
|
|
|
JsonQuery jsonQuery = new JsonQuery();
|
|
jsonQuery.setJsonQuery(jsonNode);
|
|
StringBuffer createdStringBuffer = jsonQuery.createQuery();
|
|
|
|
logger.info("Created Query from JSON: {}", createdStringBuffer.toString());
|
|
|
|
StringBuffer expectedStringBuffer = new StringBuffer();
|
|
File expectedQueryFile = new File(queriesDirectory, "query" + i + ".query");
|
|
try(BufferedReader br = new BufferedReader(new FileReader(expectedQueryFile))) {
|
|
for(String line; (line = br.readLine()) != null; ) {
|
|
expectedStringBuffer.append(line);
|
|
}
|
|
}
|
|
|
|
logger.info("Expected Query from JSON: {}", expectedStringBuffer.toString());
|
|
|
|
Assert.assertTrue(createdStringBuffer.toString().compareTo(expectedStringBuffer.toString())==0);
|
|
|
|
String result = jsonQuery.query();
|
|
logger.info("Result : {}", result);
|
|
}
|
|
}
|
|
|
|
@Test
|
|
public void testSingleCreateQuery() throws Exception {
|
|
File queriesDirectory = getQueriesDirectory();
|
|
File jsonQueryFile = new File(queriesDirectory, "query7.json");
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
JsonNode jsonNode = objectMapper.readTree(jsonQueryFile);
|
|
logger.info("Going to test the following JSON query {}", jsonNode.toString());
|
|
|
|
JsonQuery jsonQuery = new JsonQuery();
|
|
jsonQuery.setJsonQuery(jsonNode);
|
|
StringBuffer createdStringBuffer = jsonQuery.createQuery();
|
|
|
|
logger.info("Created Query from JSON: {}", createdStringBuffer.toString());
|
|
}
|
|
|
|
// @Test
|
|
public void testSingleQuery() throws Exception {
|
|
ContextTest.setContextByName(DEVVRE);
|
|
File queriesDirectory = getQueriesDirectory();
|
|
File jsonQueryFile = new File(queriesDirectory, "query3.json");
|
|
ObjectMapper objectMapper = new ObjectMapper();
|
|
JsonNode jsonNode = objectMapper.readTree(jsonQueryFile);
|
|
logger.info("Going to test the following JSON query {}", jsonNode.toString());
|
|
|
|
JsonQuery jsonQuery = new JsonQuery();
|
|
jsonQuery.setJsonQuery(jsonNode);
|
|
String res = jsonQuery.query();
|
|
logger.info(res);
|
|
}
|
|
|
|
}
|