82 lines
3.6 KiB
Java
82 lines
3.6 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.faults.PluginExecutionException;
|
|
import org.gcube.application.cms.plugins.reports.MaterializationReport;
|
|
import org.gcube.application.cms.plugins.reports.Report;
|
|
import org.gcube.application.cms.plugins.requests.MaterializationRequest;
|
|
import org.gcube.application.cms.serialization.Serialization;
|
|
import org.gcube.application.cms.tests.TestDocuments;
|
|
import org.gcube.application.cms.tests.TestProfiles;
|
|
import org.gcube.application.cms.tests.plugins.BasicPluginTest;
|
|
import org.gcube.application.geoportal.common.faults.StorageException;
|
|
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
|
import org.gcube.application.geoportal.common.model.document.Project;
|
|
import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFile;
|
|
import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFileSet;
|
|
import org.gcube.application.geoportal.common.model.rest.ConfigurationException;
|
|
import org.gcube.application.geoportal.common.utils.Files;
|
|
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
|
|
import org.junit.Test;
|
|
|
|
import java.io.File;
|
|
import java.io.IOException;
|
|
|
|
import static junit.framework.TestCase.assertTrue;
|
|
import static org.junit.Assume.assumeTrue;
|
|
|
|
public class MaterializerTests extends BasicPluginTest {
|
|
|
|
@Test
|
|
public void testShape() throws JsonProcessingException, PluginExecutionException {
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
|
Project doc= TestDocuments.documentMap.get("registeredGeoTif.json");
|
|
// doc.setProfileID("sdi-tests");
|
|
materialize(doc);
|
|
|
|
}
|
|
|
|
@Test
|
|
public void testFileNames() throws JsonProcessingException, PluginExecutionException {
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
|
Project doc= TestDocuments.documentMap.get("timponeFull.json");
|
|
// doc.setProfileID("sdi-tests");
|
|
materialize(doc);
|
|
}
|
|
|
|
@Test
|
|
public void download() throws ConfigurationException, IOException, StorageException {
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
|
Project doc= TestDocuments.documentMap.get("registeredGeoTif.json");
|
|
for(Object o : new JSONPathWrapper(doc.getTheDocument().toJson()).getByPath("$..fileset")){
|
|
RegisteredFileSet fs = Serialization.convert(o,RegisteredFileSet.class);
|
|
for(Object oo: fs.getPayloads()){
|
|
RegisteredFile f = Serialization.convert(oo,RegisteredFile.class);
|
|
File file = Files.downloadFromUrl(f.getName(),f.getLink());
|
|
// Files.deleteIfExists(file.toPath());
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private MaterializationReport materialize(Project project) throws PluginExecutionException, JsonProcessingException {
|
|
MaterializationRequest req=new MaterializationRequest(
|
|
TestProfiles.profiles.get(project.getProfileID()),getCurrentUser(),getTestContext(),project);
|
|
|
|
Document parameters = new Document();
|
|
parameters.put("workspace", "tests_workspace");
|
|
req.setCallParameters(parameters);
|
|
|
|
SDIMaterializerPlugin p = (SDIMaterializerPlugin) plugins.get(SDIMaterializerPlugin.DESCRIPTOR.getId());
|
|
MaterializationReport toReturn = p.materialize(req);
|
|
assertTrue(toReturn!=null);
|
|
toReturn.validate();
|
|
System.out.println("Response is "+ Serialization.write(toReturn));
|
|
|
|
assertTrue(toReturn.getStatus().equals(Report.Status.OK));
|
|
return toReturn;
|
|
}
|
|
}
|