2022-03-07 13:59:24 +01:00
|
|
|
package org.gcube.application.geoportal.clients;
|
|
|
|
|
2022-03-07 17:59:06 +01:00
|
|
|
import org.bson.Document;
|
2022-03-10 18:15:10 +01:00
|
|
|
import org.gcube.application.cms.tests.TokenSetter;
|
2023-01-30 12:01:56 +01:00
|
|
|
import org.gcube.application.geoportal.client.utils.Serialization;
|
|
|
|
import org.gcube.application.geoportal.common.model.document.accounting.User;
|
2022-03-07 13:59:24 +01:00
|
|
|
import org.gcube.application.geoportal.common.model.rest.QueryRequest;
|
2023-01-30 12:01:56 +01:00
|
|
|
import org.gcube.application.geoportal.common.model.useCaseDescriptor.DataAccessPolicy;
|
|
|
|
import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor;
|
2022-03-07 13:59:24 +01:00
|
|
|
import org.gcube.application.geoportal.common.rest.UseCaseDescriptorsI;
|
|
|
|
import org.gcube.application.geoportal.common.utils.tests.GCubeTest;
|
|
|
|
import org.junit.Assert;
|
|
|
|
import org.junit.Test;
|
|
|
|
|
2023-01-30 12:01:56 +01:00
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Collections;
|
|
|
|
import java.util.HashSet;
|
2022-03-07 13:59:24 +01:00
|
|
|
import java.util.concurrent.atomic.AtomicLong;
|
|
|
|
|
|
|
|
import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPlugin.useCaseDescriptors;
|
2023-01-30 12:01:56 +01:00
|
|
|
import static org.junit.Assert.assertEquals;
|
2022-03-07 13:59:24 +01:00
|
|
|
import static org.junit.Assume.assumeTrue;
|
|
|
|
|
2022-03-10 18:15:10 +01:00
|
|
|
public class UCDTests{
|
2022-03-07 13:59:24 +01:00
|
|
|
|
|
|
|
|
2022-03-10 18:15:10 +01:00
|
|
|
|
|
|
|
|
|
|
|
public UseCaseDescriptorsI getClient(){
|
2022-03-07 13:59:24 +01:00
|
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
2022-03-10 18:15:10 +01:00
|
|
|
TokenSetter.set(GCubeTest.getContext());
|
|
|
|
return useCaseDescriptors().build();
|
2022-03-07 13:59:24 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void query() throws Exception {
|
2023-01-30 12:01:56 +01:00
|
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
2022-03-10 18:15:10 +01:00
|
|
|
UseCaseDescriptorsI client =getClient();
|
2022-03-07 13:59:24 +01:00
|
|
|
QueryRequest request = new QueryRequest();
|
|
|
|
// All
|
|
|
|
AtomicLong counter = new AtomicLong(0l);
|
|
|
|
client.query(request).forEachRemaining(u ->counter.incrementAndGet());
|
2022-03-07 17:59:06 +01:00
|
|
|
|
|
|
|
// Filter by presence of handler Id
|
|
|
|
request.setFilter(Document.parse("{\"_handlers._id\" : {\"$eq\" : \"org.gcube....geoportal-data-entry-portlet\"}}"));
|
|
|
|
|
2022-03-07 13:59:24 +01:00
|
|
|
System.out.println("Count : "+counter.get());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2022-03-10 18:15:10 +01:00
|
|
|
public void getByIdAll() throws Exception {
|
2023-01-30 12:01:56 +01:00
|
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
2022-03-10 18:15:10 +01:00
|
|
|
UseCaseDescriptorsI client =getClient();
|
2022-03-07 13:59:24 +01:00
|
|
|
|
|
|
|
QueryRequest request = new QueryRequest();
|
|
|
|
// All
|
|
|
|
|
|
|
|
client.query(request).forEachRemaining(u -> {
|
|
|
|
try {
|
2022-03-10 18:15:10 +01:00
|
|
|
System.out.println("Obtained "+client.getById(u.getId()).getId());
|
2022-03-07 13:59:24 +01:00
|
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace(System.err);
|
|
|
|
Assert.fail("Unable to get "+u.getId());
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2022-03-10 18:15:10 +01:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void getById() throws Exception {
|
2023-01-30 12:01:56 +01:00
|
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
2022-03-10 18:15:10 +01:00
|
|
|
UseCaseDescriptorsI client =getClient();
|
|
|
|
|
|
|
|
System.out.println(client.getById("profiledConcessioni"));
|
|
|
|
}
|
2023-01-30 12:01:56 +01:00
|
|
|
|
|
|
|
@Test
|
|
|
|
public void checkPolicies() throws Exception {
|
|
|
|
assumeTrue(GCubeTest.isTestInfrastructureEnabled());
|
|
|
|
UseCaseDescriptorsI client =getClient();
|
|
|
|
UseCaseDescriptor ucd = client.getById("profiledConcessioni");
|
|
|
|
System.out.println(Serialization.write(ucd));
|
|
|
|
User u = new User();
|
|
|
|
u.setRoles(new HashSet<>());
|
|
|
|
u.getRoles().addAll(Arrays.asList("Members","Data-Manager"));
|
|
|
|
|
|
|
|
DataAccessPolicy p = ucd.getMatching(u);
|
|
|
|
System.out.println("Evaluated policy : "+Serialization.write(p));
|
|
|
|
assertEquals(p.getPolicy().getRead(), DataAccessPolicy.Policy.Type.any);
|
|
|
|
assertEquals(p.getPolicy().getWrite(), DataAccessPolicy.Policy.Type.any);
|
|
|
|
|
|
|
|
}
|
2022-03-07 13:59:24 +01:00
|
|
|
}
|