gcube-cms-suite/geoportal-client/src/test/java/org/gcube/application/geoportal/clients/UCDTests.java

93 lines
3.3 KiB
Java
Raw Normal View History

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
}