From ff916ae3cd7784b6ccc1b251c1eff80728a653ff Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Thu, 7 Apr 2022 18:12:42 +0200 Subject: [PATCH] Fixing --- .../AbstractLifeCycleManager.java | 2 + .../cms/commons/model/RolesTesting.java | 40 +++++++++++++++++++ .../engine/mongo/ProfiledMongoManager.java | 2 +- .../InexistentUseCaseDescriptorTests.java | 6 +++ .../service/engine/mongo/LockTests.java | 7 ++++ .../service/profiledDocuments/RolesTests.java | 13 ++++++ 6 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/RolesTesting.java diff --git a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/implementations/AbstractLifeCycleManager.java b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/implementations/AbstractLifeCycleManager.java index 01e4e29..bd8eb26 100644 --- a/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/implementations/AbstractLifeCycleManager.java +++ b/cms-plugin-framework/src/main/java/org/gcube/application/cms/plugins/implementations/AbstractLifeCycleManager.java @@ -183,6 +183,8 @@ public abstract class AbstractLifeCycleManager extends AbstractPlugin implements EventExecutionReport report=new EventExecutionReport(request); report.getToSetLifecycleInformation().addEventReport(new TriggeredEvents()); TriggeredEvents info = report.getToSetLifecycleInformation().getLastEvent(); + info.setLastOperationStatus(LifecycleInformation.Status.OK); + info.setEvent(request.getEvent()); try { if(!registeredEvent.containsKey(request.getEvent())) throw new UnrecognizedEventException("Unexpected Event "+request.getEvent()); diff --git a/cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/RolesTesting.java b/cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/RolesTesting.java new file mode 100644 index 0000000..c873b25 --- /dev/null +++ b/cms-test-commons/src/test/java/org/gcube/application/cms/commons/model/RolesTesting.java @@ -0,0 +1,40 @@ +package org.gcube.application.cms.commons.model; + +import org.gcube.application.cms.tests.TestProfiles; +import org.gcube.application.cms.tests.model.BasicTests; +import org.gcube.application.geoportal.common.model.document.accounting.User; +import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor; +import org.junit.Test; + +import java.util.Collections; + +import static junit.framework.TestCase.assertNotNull; + +public class RolesTesting extends BasicTests { + + + + public UseCaseDescriptor getUcd() { + return TestProfiles.profiles.get("profiledConcessioni"); + } + + @Test + public void checkRoles(){ + User u = getCurrentUser(); + UseCaseDescriptor ucd = getUcd(); + u.setRoles(Collections.emptySet()); + assertNotNull(ucd.getMatching(u)); + + u.setRoles(Collections.singleton("FakeUser")); + assertNotNull(ucd.getMatching(u)); + u.setRoles(Collections.singleton("FakeAdmin")); + assertNotNull(ucd.getMatching(u)); + u.setRoles(Collections.singleton("FakeEditor")); + assertNotNull(ucd.getMatching(u)); + u.setRoles(Collections.singleton("FakeMember")); + assertNotNull(ucd.getMatching(u)); + + + } + +} diff --git a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java index 0ad6149..a2bbee2 100644 --- a/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java +++ b/geoportal-service/src/main/java/org/gcube/application/geoportal/service/engine/mongo/ProfiledMongoManager.java @@ -672,7 +672,7 @@ public class ProfiledMongoManager extends MongoManager implements MongoManagerI< if(lcConfig.getIndexes()!=null) indexes.addAll(lcConfig.getIndexes()); - }catch(ConfigurationException e){ + }catch(Throwable e){ toReturn.addErrorMessage("Unable to get Lifecycle info "+e.getMessage()); log.error("Unable to get Lifecycle info ",e); } diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/InexistentUseCaseDescriptorTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/InexistentUseCaseDescriptorTests.java index d2f83bd..32cbd92 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/InexistentUseCaseDescriptorTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/InexistentUseCaseDescriptorTests.java @@ -45,4 +45,10 @@ public class InexistentUseCaseDescriptorTests extends AbstractProfiledDocumentsT public void getByID() { super.getByID(); } + + @Override + @Test(expected = Exception.class) + public void getConfiguration() { + super.getByID(); + } } diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/LockTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/LockTests.java index 4ee7f78..f60ceda 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/LockTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/engine/mongo/LockTests.java @@ -20,6 +20,7 @@ import org.gcube.application.geoportal.service.utils.UserUtils; import org.gcube.common.storagehub.model.exceptions.StorageHubException; import org.geotoolkit.referencing.operation.provider.PolarStereographic; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import java.io.File; @@ -33,12 +34,18 @@ public class LockTests extends BasicServiceTestUnit { String profileID = "rolesTesting"; ProfiledMongoManager manager= null; + @BeforeClass + public static void setLocalFolder(){ + USE_LOCAL_FOLDER=true; + } @Before public void inits() throws RegistrationException, ConfigurationException { assumeTrue(GCubeTest.isTestInfrastructureEnabled()); TokenSetter.set(GCubeTest.getContext()); manager = new ProfiledMongoManager(profileID); + // NB Role testing not expected in VRE + UserUtils.DEFAULT_ROLES.add("FakeAdmin"); } diff --git a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/RolesTests.java b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/RolesTests.java index 40a8784..f1f8d66 100644 --- a/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/RolesTests.java +++ b/geoportal-service/src/test/java/org/gcube/application/geoportal/service/profiledDocuments/RolesTests.java @@ -1,7 +1,11 @@ package org.gcube.application.geoportal.service.profiledDocuments; +import org.gcube.application.cms.tests.TestProfiles; +import org.gcube.application.geoportal.common.model.document.accounting.User; import org.gcube.application.geoportal.common.model.useCaseDescriptor.DataAccessPolicy; +import org.gcube.application.geoportal.common.model.useCaseDescriptor.UseCaseDescriptor; import org.gcube.application.geoportal.common.rest.InterfaceConstants; +import org.junit.BeforeClass; import org.junit.Test; import javax.ws.rs.client.WebTarget; @@ -9,6 +13,12 @@ import javax.ws.rs.client.WebTarget; public class RolesTests extends AbstractProfiledDocumentsTests{ + @BeforeClass + public static void setup(){ + //NB Profile is only in local resources + USE_LOCAL_FOLDER=true; + } + @Override protected WebTarget baseTarget() { String testProfileId="rolesTesting"; @@ -19,6 +29,9 @@ public class RolesTests extends AbstractProfiledDocumentsTests{ @Test public void testRoles(){ // Insert for each + UseCaseDescriptor ucd = TestProfiles.profiles.get("rolesTesting"); + + }