87 lines
4.2 KiB
Java
87 lines
4.2 KiB
Java
package org.gcube.application.cms.sdi.plugins;
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
|
import org.bson.Document;
|
|
import org.gcube.application.cms.plugins.IndexerPluginInterface;
|
|
import org.gcube.application.cms.plugins.faults.PluginExecutionException;
|
|
import org.gcube.application.cms.plugins.reports.IndexDocumentReport;
|
|
import org.gcube.application.cms.plugins.reports.Report;
|
|
import org.gcube.application.cms.plugins.requests.BaseRequest;
|
|
import org.gcube.application.cms.plugins.requests.IndexDocumentRequest;
|
|
import org.gcube.application.cms.sdi.engine.PostgisIndexer;
|
|
import org.gcube.application.cms.sdi.model.GCubeSDILayerBuilder;
|
|
import org.gcube.application.cms.sdi.plugins.SDIIndexerPlugin;
|
|
import org.gcube.application.cms.serialization.Serialization;
|
|
import org.gcube.application.cms.tests.BasicPluginTest;
|
|
import org.gcube.application.cms.tests.TestDocuments;
|
|
import org.gcube.application.cms.tests.TestProfiles;
|
|
import org.gcube.application.geoportal.common.model.configuration.Index;
|
|
import org.gcube.application.geoportal.common.model.document.Project;
|
|
import org.gcube.application.geoportal.common.model.document.accounting.Context;
|
|
import org.gcube.application.geoportal.common.model.document.accounting.User;
|
|
import org.gcube.application.geoportal.common.model.document.filesets.GCubeSDILayer;
|
|
import org.gcube.application.geoportal.common.model.document.filesets.Materialization;
|
|
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
|
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
|
import org.gcube.application.geoportal.common.utils.Files;
|
|
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
|
|
import org.gcube.spatial.data.geonetwork.utils.UserUtils;
|
|
import org.junit.Test;
|
|
import ucar.units.Base;
|
|
|
|
import static junit.framework.TestCase.*;
|
|
import static org.junit.Assume.assumeTrue;
|
|
|
|
public class IndexerTest extends BasicPluginTest {
|
|
|
|
@Test
|
|
public void testIndexRequest() throws PluginExecutionException, JsonProcessingException {
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
|
Project doc= TestDocuments.documentMap.get("profiledConcessioniExample.json");
|
|
|
|
IndexDocumentRequest request=new IndexDocumentRequest(TestProfiles.profiles.get(doc.getProfileID()),
|
|
getTestUser(),getTestContext(),doc);
|
|
|
|
Document parameters = new Document();
|
|
parameters.put("workspace", "testing_workspace");
|
|
parameters.put("indexName", "unique_index"+System.currentTimeMillis());
|
|
request.setCallParameters(parameters);
|
|
|
|
IndexerPluginInterface plugin = (IndexerPluginInterface) plugins.get(SDIIndexerPlugin.DESCRIPTOR.getId());
|
|
|
|
IndexDocumentReport response = plugin.index(request);
|
|
assertTrue(response!=null);
|
|
response.validate();
|
|
System.out.println("Response is "+Serialization.write(response));
|
|
|
|
assertTrue(response.getStatus().equals(Report.Status.OK));
|
|
assertTrue(response.prepareResult().getSpatialReference()!=null);
|
|
}
|
|
|
|
|
|
@Test
|
|
public void getIndex() throws ConfigurationException, JsonProcessingException {
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
|
IndexerPluginInterface plugin = (IndexerPluginInterface) plugins.get(SDIIndexerPlugin.DESCRIPTOR.getId());
|
|
UseCaseDescriptor descriptor=TestProfiles.profiles.get("profiledConcessioni");
|
|
|
|
Index index = plugin.getIndex(new BaseRequest(descriptor,getTestUser(),getTestContext())
|
|
.setParameter("workspace", Files.fixFilename(GCubeTest.getContext()+"_test-ws"))
|
|
.setParameter("indexName",Files.fixFilename(GCubeTest.getContext()+"test_index")));
|
|
System.out.println("Test Index Is "+index);
|
|
assertEquals(index.getType(), PostgisIndexer.INDEX_TYPE);
|
|
assertNotNull(index.get("layer"));
|
|
assertNotNull(index.get("indexName"));
|
|
GCubeSDILayer layer = Serialization.convert(index.get("layer"),GCubeSDILayer.class);
|
|
assertEquals(GCubeSDILayer.GCUBE_SDY_LAYER_TYPE,layer.getType());
|
|
|
|
for (Object pIObj : layer.getPlatformInfo()){
|
|
Document platformDoc = Serialization.asDocument(pIObj);
|
|
assertEquals(GCubeSDILayerBuilder.GS_PLATFORM,platformDoc.get(Materialization.TYPE));
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|