Tests
This commit is contained in:
parent
e1defba910
commit
20336ea57a
|
@ -10,7 +10,7 @@ import java.nio.charset.Charset;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class TestDocuments {
|
public class TestDocuments {
|
||||||
public static File BASE_FOLDER =new File("test-data/profiledDocuments");
|
public static File BASE_FOLDER =new File("../test-data/profiledDocuments");
|
||||||
public static final HashMap<String, Project> documentMap =new HashMap<>();
|
public static final HashMap<String, Project> documentMap =new HashMap<>();
|
||||||
|
|
||||||
static{
|
static{
|
||||||
|
|
|
@ -52,16 +52,19 @@ public abstract class GenericUseCases extends BasicVreTests{
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Project prepareWithFileSet(Project project) throws FileNotFoundException, InvalidRequestException, RemoteException {
|
protected Project prepareWithFileSet(Project project) throws FileNotFoundException, InvalidRequestException, RemoteException {
|
||||||
|
|
||||||
|
return getClient().registerFileSet(project.getId(), prepareRequest());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected RegisterFileSetRequest prepareRequest() throws FileNotFoundException {
|
||||||
String parentPath = "$.section";
|
String parentPath = "$.section";
|
||||||
String fieldName = "fileset";
|
String fieldName = "fileset";
|
||||||
String fieldDefinition = "$.section._children[?(@.fileset)]";
|
String fieldDefinition = "$.section._children[?(@.fileset)]";
|
||||||
|
|
||||||
// Prepare request
|
// Prepare request
|
||||||
RegisterFileSetRequest fsRequest = FileSets.
|
return FileSets.
|
||||||
prepareRequest(new StorageUtils(),
|
prepareRequest(new StorageUtils(),
|
||||||
parentPath,fieldName,fieldDefinition, new File(Tests.FOLDER_CONCESSIONI,"pos.shp"));
|
parentPath,fieldName,fieldDefinition, new File(Tests.FOLDER_CONCESSIONI,"pos.shp"));
|
||||||
|
|
||||||
|
|
||||||
return getClient().registerFileSet(project.getId(),fsRequest);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,12 +2,17 @@ package org.gcube.application.geoportal.clients;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
import org.gcube.application.cms.tests.TestDocuments;
|
import org.gcube.application.cms.tests.TestDocuments;
|
||||||
import org.gcube.application.cms.tests.Tests;
|
import org.gcube.application.cms.tests.Tests;
|
||||||
import org.gcube.application.geoportal.client.utils.Serialization;
|
import org.gcube.application.geoportal.client.utils.Serialization;
|
||||||
import org.gcube.application.geoportal.common.faults.InvalidRequestException;
|
import org.gcube.application.geoportal.common.faults.InvalidRequestException;
|
||||||
|
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.Project;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.Access;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.AccessPolicy;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFileSet;
|
||||||
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
||||||
import org.gcube.application.geoportal.common.model.rest.StepExecutionRequest;
|
import org.gcube.application.geoportal.common.model.rest.StepExecutionRequest;
|
||||||
import org.gcube.application.geoportal.common.model.useCaseDescriptor.Field;
|
import org.gcube.application.geoportal.common.model.useCaseDescriptor.Field;
|
||||||
|
@ -25,6 +30,9 @@ import java.io.IOException;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.rmi.RemoteException;
|
import java.rmi.RemoteException;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
public class ProfiledConcessioniTest extends ProfiledDocumentsTest{
|
public class ProfiledConcessioniTest extends ProfiledDocumentsTest{
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
@ -78,11 +86,28 @@ public class ProfiledConcessioniTest extends ProfiledDocumentsTest{
|
||||||
|
|
||||||
// Set relazione
|
// Set relazione
|
||||||
|
|
||||||
client.registerFileSet(project.getId(), FileSets.
|
|
||||||
|
Access toSetAccess = new Access();
|
||||||
|
toSetAccess.setPolicy(AccessPolicy.RESTRICTED);
|
||||||
|
toSetAccess.setLicense("CC0-1.0");
|
||||||
|
|
||||||
|
RegisterFileSetRequest request=FileSets.
|
||||||
prepareRequest(new StorageUtils(),
|
prepareRequest(new StorageUtils(),
|
||||||
"$.relazioneScavo","fileset",
|
"$.relazioneScavo","fileset",
|
||||||
"$.relazioneScavo."+Field.CHILDREN+"[?(@.fileset)]",
|
"$.relazioneScavo."+Field.CHILDREN+"[?(@.fileset)]",
|
||||||
new File(Tests.FOLDER_CONCESSIONI,"relazione.pdf")));
|
new File(Tests.FOLDER_CONCESSIONI,"relazione.pdf"));
|
||||||
|
request.setToSetAccess(toSetAccess);
|
||||||
|
|
||||||
|
project=client.registerFileSet(project.getId(), request);
|
||||||
|
|
||||||
|
String jsonDoc=project.getTheDocument().toJson();
|
||||||
|
log.info("Registered fileset. Result is {}", jsonDoc);
|
||||||
|
RegisteredFileSet f= Serialization.convert(new JSONPathWrapper(jsonDoc).getByPath(
|
||||||
|
request.getParentPath()).get(0),RegisteredFileSet.class);
|
||||||
|
|
||||||
|
assertEquals(Serialization.convert(f.getAccess(),Access.class).getPolicy(),toSetAccess.getPolicy());
|
||||||
|
assertEquals(Serialization.convert(f.getAccess(),Access.class).getLicense(),toSetAccess.getLicense());
|
||||||
|
|
||||||
|
|
||||||
// Set Abstract
|
// Set Abstract
|
||||||
|
|
||||||
|
|
|
@ -3,22 +3,35 @@ package org.gcube.application.geoportal.clients;
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.bson.Document;
|
import org.bson.Document;
|
||||||
|
import org.gcube.application.cms.tests.Tests;
|
||||||
|
import org.gcube.application.geoportal.client.utils.Serialization;
|
||||||
|
import org.gcube.application.geoportal.common.faults.InvalidRequestException;
|
||||||
|
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
||||||
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
||||||
import org.gcube.application.geoportal.common.model.document.Project;
|
import org.gcube.application.geoportal.common.model.document.Project;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.Access;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.AccessPolicy;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFileSet;
|
||||||
import org.gcube.application.geoportal.common.model.document.relationships.RelationshipNavigationObject;
|
import org.gcube.application.geoportal.common.model.document.relationships.RelationshipNavigationObject;
|
||||||
import org.gcube.application.geoportal.common.model.rest.CreateRelationshipRequest;
|
import org.gcube.application.geoportal.common.model.rest.CreateRelationshipRequest;
|
||||||
import org.gcube.application.geoportal.common.model.rest.DeleteRelationshipRequest;
|
import org.gcube.application.geoportal.common.model.rest.DeleteRelationshipRequest;
|
||||||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||||
|
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
||||||
import org.gcube.application.geoportal.common.rest.Projects;
|
import org.gcube.application.geoportal.common.rest.Projects;
|
||||||
|
import org.gcube.application.geoportal.common.utils.FileSets;
|
||||||
|
import org.gcube.application.geoportal.common.utils.StorageUtils;
|
||||||
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
|
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.rmi.RemoteException;
|
import java.rmi.RemoteException;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.concurrent.atomic.AtomicLong;
|
import java.util.concurrent.atomic.AtomicLong;
|
||||||
|
|
||||||
import static org.gcube.application.geoportal.client.utils.Serialization.write;
|
import static org.gcube.application.geoportal.client.utils.Serialization.write;
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assume.assumeTrue;
|
import static org.junit.Assume.assumeTrue;
|
||||||
|
|
||||||
|
@ -33,7 +46,7 @@ public class ProfiledDocumentsTest<M extends Project,C extends Projects<M>> exte
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void registerNew() throws RemoteException, JsonProcessingException {
|
public void registerNew() throws RemoteException, JsonProcessingException, FileNotFoundException, InvalidRequestException {
|
||||||
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
||||||
Projects<M> client = (Projects<M>) getClient();
|
Projects<M> client = (Projects<M>) getClient();
|
||||||
|
|
||||||
|
@ -46,6 +59,38 @@ public class ProfiledDocumentsTest<M extends Project,C extends Projects<M>> exte
|
||||||
Project p =client.createNew(theDoc);
|
Project p =client.createNew(theDoc);
|
||||||
|
|
||||||
log.debug("Registered project (AS JSON) : {}", write(p));
|
log.debug("Registered project (AS JSON) : {}", write(p));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAccess() throws FileNotFoundException, RemoteException, InvalidRequestException, JsonProcessingException {
|
||||||
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
||||||
|
Projects<M> client = (Projects<M>) getClient();
|
||||||
|
|
||||||
|
Document theDoc= Document.parse("{\n" +
|
||||||
|
"\"posizionamentoScavo\" :{\n" +
|
||||||
|
"\t\"titolo\" : \"mio titolo\"}}");
|
||||||
|
|
||||||
|
theDoc.put("startTime", LocalDateTime.now());
|
||||||
|
|
||||||
|
Project p =client.createNew(theDoc);
|
||||||
|
|
||||||
|
RegisterFileSetRequest fsRequest = prepareRequest();
|
||||||
|
|
||||||
|
Access access = new Access();
|
||||||
|
access.setLicense("CC0-1.0");
|
||||||
|
access.setPolicy(AccessPolicy.RESTRICTED);
|
||||||
|
fsRequest.setToSetAccess(access);
|
||||||
|
|
||||||
|
p=client.registerFileSet(p.getId(),fsRequest);
|
||||||
|
|
||||||
|
log.info("Registered fileset. Result is {}", Serialization.write(p));
|
||||||
|
RegisteredFileSet f= Serialization.convert(new JSONPathWrapper(p.getTheDocument().toJson()).getByPath(fsRequest.getParentPath()).get(0),RegisteredFileSet.class);
|
||||||
|
|
||||||
|
assertEquals(Serialization.convert(f.getAccess(),Access.class).getPolicy(),AccessPolicy.RESTRICTED);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -953,7 +953,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI<
|
||||||
|
|
||||||
private static final RegisteredFileSet prepareRegisteredFileSet(Access toSetAccess,String docID, String profileID,
|
private static final RegisteredFileSet prepareRegisteredFileSet(Access toSetAccess,String docID, String profileID,
|
||||||
Document attributes,List<TempFile> files, StorageUtils storage,WorkspaceManager ws) throws StorageHubException, StorageException {
|
Document attributes,List<TempFile> files, StorageUtils storage,WorkspaceManager ws) throws StorageHubException, StorageException {
|
||||||
log.debug("Preparing Registered FileSet..");
|
log.debug("Preparing Registered FileSet {}");
|
||||||
RegisteredFileSet toReturn = new RegisteredFileSet();
|
RegisteredFileSet toReturn = new RegisteredFileSet();
|
||||||
if(attributes!=null) toReturn.putAll(attributes);
|
if(attributes!=null) toReturn.putAll(attributes);
|
||||||
String uuid = UUID.randomUUID().toString();
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
|
|
@ -9,6 +9,7 @@ import org.gcube.application.cms.tests.TokenSetter;
|
||||||
import org.gcube.application.cms.tests.model.BasicTests;
|
import org.gcube.application.cms.tests.model.BasicTests;
|
||||||
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
||||||
import org.gcube.application.geoportal.common.model.document.Project;
|
import org.gcube.application.geoportal.common.model.document.Project;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.Access;
|
||||||
import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation;
|
import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation;
|
||||||
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
||||||
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
||||||
|
@ -29,6 +30,7 @@ import javax.ws.rs.core.MediaType;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
import static org.junit.Assume.assumeTrue;
|
import static org.junit.Assume.assumeTrue;
|
||||||
|
|
||||||
|
@ -158,9 +160,12 @@ public abstract class AbstractProfiledDocumentsTests extends BasicServiceTestUni
|
||||||
String fieldDefinitionPath,
|
String fieldDefinitionPath,
|
||||||
Document attributes,
|
Document attributes,
|
||||||
RegisterFileSetRequest.ClashOptions clashPolicy,
|
RegisterFileSetRequest.ClashOptions clashPolicy,
|
||||||
|
Access access,
|
||||||
String ...files) throws Exception {
|
String ...files) throws Exception {
|
||||||
FileSets.RequestBuilder builder = FileSets.build(parentPath,fieldName,fieldDefinitionPath);
|
FileSets.RequestBuilder builder = FileSets.build(parentPath,fieldName,fieldDefinitionPath);
|
||||||
|
|
||||||
|
builder.setAccess(access);
|
||||||
|
|
||||||
builder.setClashPolicy(clashPolicy).setAttributes(attributes);
|
builder.setClashPolicy(clashPolicy).setAttributes(attributes);
|
||||||
|
|
||||||
for(String file:files)
|
for(String file:files)
|
||||||
|
@ -169,6 +174,7 @@ public abstract class AbstractProfiledDocumentsTests extends BasicServiceTestUni
|
||||||
Project doc = check(baseTarget().path(InterfaceConstants.Methods.REGISTER_FILES_PATH).path(id).request(MediaType.APPLICATION_JSON).
|
Project doc = check(baseTarget().path(InterfaceConstants.Methods.REGISTER_FILES_PATH).path(id).request(MediaType.APPLICATION_JSON).
|
||||||
post(Entity.entity(Serialization.write(builder.getTheRequest()),
|
post(Entity.entity(Serialization.write(builder.getTheRequest()),
|
||||||
MediaType.APPLICATION_JSON)), Project.class);
|
MediaType.APPLICATION_JSON)), Project.class);
|
||||||
|
|
||||||
BasicTests.validate(doc);
|
BasicTests.validate(doc);
|
||||||
return doc;
|
return doc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,8 @@ import org.bson.Document;
|
||||||
import org.gcube.application.cms.serialization.Serialization;
|
import org.gcube.application.cms.serialization.Serialization;
|
||||||
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
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.Project;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.Access;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.AccessPolicy;
|
||||||
import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFileSet;
|
import org.gcube.application.geoportal.common.model.document.filesets.RegisteredFileSet;
|
||||||
import org.gcube.application.geoportal.common.model.document.relationships.Relationship;
|
import org.gcube.application.geoportal.common.model.document.relationships.Relationship;
|
||||||
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
||||||
|
@ -89,7 +91,7 @@ public class DummyProjectTest extends AbstractProfiledDocumentsTests{
|
||||||
fieldDefinition,
|
fieldDefinition,
|
||||||
new Document("customField","customFieldValue"),
|
new Document("customField","customFieldValue"),
|
||||||
RegisterFileSetRequest.ClashOptions.REPLACE_EXISTING,
|
RegisterFileSetRequest.ClashOptions.REPLACE_EXISTING,
|
||||||
filename);
|
new Access(),filename);
|
||||||
|
|
||||||
wrapper = new JSONPathWrapper(doc.getTheDocument().toJson());
|
wrapper = new JSONPathWrapper(doc.getTheDocument().toJson());
|
||||||
assertTrue("Relazione exists",wrapper.getMatchingPaths("section").size()==1);
|
assertTrue("Relazione exists",wrapper.getMatchingPaths("section").size()==1);
|
||||||
|
@ -127,8 +129,9 @@ public class DummyProjectTest extends AbstractProfiledDocumentsTests{
|
||||||
|
|
||||||
Project doc = createNew(baseDoc);
|
Project doc = createNew(baseDoc);
|
||||||
|
|
||||||
|
Access access =new Access();
|
||||||
|
access.setLicense("test-license");
|
||||||
|
access.setPolicy(AccessPolicy.RESTRICTED);
|
||||||
|
|
||||||
// INSERT ONE, MERGE INFO (NB default values already exist)
|
// INSERT ONE, MERGE INFO (NB default values already exist)
|
||||||
doc = upload(
|
doc = upload(
|
||||||
|
@ -138,7 +141,7 @@ public class DummyProjectTest extends AbstractProfiledDocumentsTests{
|
||||||
fieldDefinition,
|
fieldDefinition,
|
||||||
new Document("customField","customFieldValue"),
|
new Document("customField","customFieldValue"),
|
||||||
RegisterFileSetRequest.ClashOptions.REPLACE_EXISTING,
|
RegisterFileSetRequest.ClashOptions.REPLACE_EXISTING,
|
||||||
filename);
|
access,filename);
|
||||||
|
|
||||||
return doc;
|
return doc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ import org.gcube.application.cms.serialization.Serialization;
|
||||||
import org.gcube.application.cms.tests.model.BasicTests;
|
import org.gcube.application.cms.tests.model.BasicTests;
|
||||||
import org.gcube.application.geoportal.common.model.JSONPathWrapper;
|
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.Project;
|
||||||
|
import org.gcube.application.geoportal.common.model.document.access.Access;
|
||||||
import org.gcube.application.geoportal.common.model.document.identification.SpatialReference;
|
import org.gcube.application.geoportal.common.model.document.identification.SpatialReference;
|
||||||
import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation;
|
import org.gcube.application.geoportal.common.model.document.lifecycle.LifecycleInformation;
|
||||||
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
import org.gcube.application.geoportal.common.model.rest.RegisterFileSetRequest;
|
||||||
|
@ -70,7 +71,7 @@ public class ProfiledConcessioniTests extends AbstractProfiledDocumentsTests{
|
||||||
"fileset",
|
"fileset",
|
||||||
"$.posizionamentoScavo."+ Field.CHILDREN+"[?(@.fileset)]",
|
"$.posizionamentoScavo."+ Field.CHILDREN+"[?(@.fileset)]",
|
||||||
null,
|
null,
|
||||||
RegisterFileSetRequest.ClashOptions.MERGE_EXISTING,
|
RegisterFileSetRequest.ClashOptions.MERGE_EXISTING,new Access(),
|
||||||
"concessioni/pos.SHP");
|
"concessioni/pos.SHP");
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -250,6 +250,9 @@ public class ExportConcessioniAsProjects {
|
||||||
+ "[?(@.fileset)]");
|
+ "[?(@.fileset)]");
|
||||||
req.addAll(convertFiles(content));
|
req.addAll(convertFiles(content));
|
||||||
req.setAccess(getAccess(rel));
|
req.setAccess(getAccess(rel));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
project = client.registerFileSet(project.getId(),req.getTheRequest());
|
project = client.registerFileSet(project.getId(),req.getTheRequest());
|
||||||
}
|
}
|
||||||
// upload fileset
|
// upload fileset
|
||||||
|
|
Loading…
Reference in New Issue