From 74dca02fb3bce16346b3e7b0a01d397903f15615 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Fri, 7 Dec 2018 16:49:48 +0000 Subject: [PATCH] commented tests git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/private/luca.frosini/infrastructure-tests@174682 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 13 ++ .../JobUsageRecordScopedTest.java | 3 +- .../ServiceUsageRecordScopedTest.java | 2 + .../StorageUsageRecordScopedTest.java | 4 +- .../ContextAuthorizationTest.java | 2 +- src/test/java/org/gcube/hl/ContextTest.java | 122 ++++++++++++++++++ .../java/org/gcube/hl/ContextUtility.java | 81 ++++++++++++ .../hl/HLCatalogueSpecialFolderTest.java | 58 +++++++++ 8 files changed, 282 insertions(+), 3 deletions(-) create mode 100644 src/test/java/org/gcube/hl/ContextTest.java create mode 100644 src/test/java/org/gcube/hl/ContextUtility.java create mode 100644 src/test/java/org/gcube/hl/HLCatalogueSpecialFolderTest.java diff --git a/pom.xml b/pom.xml index 3e0be23..52e1c5a 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,19 @@ + + + org.gcube.common + home-library-jcr + [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) + + + org.gcube.common + home-library + [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) + + + org.gcube.accounting diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordScopedTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordScopedTest.java index 1101859..f9c29d6 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordScopedTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordScopedTest.java @@ -20,6 +20,7 @@ public class JobUsageRecordScopedTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(JobUsageRecordScopedTest.class); + /* @Test public void testRequiredFieldsScoped() throws InvalidValueException{ JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecord(); @@ -36,5 +37,5 @@ public class JobUsageRecordScopedTest extends ScopedTest { usageRecord.validate(); logger.debug("{}", usageRecord); } - + */ } diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordScopedTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordScopedTest.java index 2ab5b04..c51db32 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordScopedTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordScopedTest.java @@ -20,6 +20,7 @@ public class ServiceUsageRecordScopedTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(ServiceUsageRecordScopedTest.class); + /* @Test public void testRequiredFieldsScoped() throws InvalidValueException{ ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); @@ -36,5 +37,6 @@ public class ServiceUsageRecordScopedTest extends ScopedTest { usageRecord.validate(); logger.debug("{}", usageRecord); } + */ } diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordScopedTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordScopedTest.java index 8afb16a..c00aa5c 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordScopedTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordScopedTest.java @@ -20,6 +20,7 @@ public class StorageUsageRecordScopedTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(StorageUsageRecordScopedTest.class); + /* @Test public void testRequiredFieldsScoped() throws InvalidValueException{ StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecord(); @@ -36,5 +37,6 @@ public class StorageUsageRecordScopedTest extends ScopedTest { usageRecord.validate(); logger.debug("{}", usageRecord); } - + */ + } diff --git a/src/test/java/org/gcube/authorization/ContextAuthorizationTest.java b/src/test/java/org/gcube/authorization/ContextAuthorizationTest.java index a81fb91..0f4a677 100644 --- a/src/test/java/org/gcube/authorization/ContextAuthorizationTest.java +++ b/src/test/java/org/gcube/authorization/ContextAuthorizationTest.java @@ -35,7 +35,7 @@ public class ContextAuthorizationTest extends ContextTest { String userToken = authorizationService().generateUserToken(userInfo, context); SecurityTokenProvider.instance.set(userToken); - String applicationName = "ScienceCatalogue"; + String applicationName = "nagios.check"; String generatedToken = authorizationService().generateExternalServiceToken(applicationName); logger.trace("Application Token for application {} in Context {} is {}", applicationName, diff --git a/src/test/java/org/gcube/hl/ContextTest.java b/src/test/java/org/gcube/hl/ContextTest.java new file mode 100644 index 0000000..0384a73 --- /dev/null +++ b/src/test/java/org/gcube/hl/ContextTest.java @@ -0,0 +1,122 @@ +/** + * + */ +package org.gcube.hl; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.gcube.common.authorization.client.Constants; +import org.gcube.common.authorization.client.exceptions.ObjectNotFound; +import org.gcube.common.authorization.library.AuthorizationEntry; +import org.gcube.common.authorization.library.provider.AuthorizationProvider; +import org.gcube.common.authorization.library.provider.ClientInfo; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.authorization.library.utils.Caller; +import org.gcube.common.scope.api.ScopeProvider; +import org.junit.AfterClass; +import org.junit.BeforeClass; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Luca Frosini (ISTI - CNR) + * + */ +public class ContextTest { + + private static final Logger logger = LoggerFactory.getLogger(ContextTest.class); + + protected static final String PROPERTIES_FILENAME = "token.properties"; + + private static final String GCUBE_VARNAME = "GCUBE"; + public static final String GCUBE; + + private static final String GCUBE_DEVNEXT_VARNAME = "GCUBE_DEVNEXT"; + public static final String GCUBE_DEVNEXT; + + private static final String GCUBE_DEVNEXT_NEXTNEXT_VARNAME = "GCUBE_DEVNEXT_NEXTNEXT"; + public static final String GCUBE_DEVNEXT_NEXTNEXT; + + public static final String GCUBE_DEVSEC_VARNAME = "GCUBE_DEVSEC"; + public static final String GCUBE_DEVSEC; + + public static final String GCUBE_DEVSEC_DEVVRE_VARNAME = "GCUBE_DEVSEC_DEVVRE"; + public static final String GCUBE_DEVSEC_DEVVRE; + + + private static final String GCUBE_DEVNEXT_ANOTHER_USER_VARNAME = "GCUBE_DEVNEXT_ANOTHER_USER"; + public static final String GCUBE_DEVNEXT_ANOTHER_USER; + + public static final String DEFAULT_TEST_SCOPE; + + public static final String GCUBE_PRE_PROD_PREVRE_VARNAME = "GCUBE_PRE_PROD_PREVRE"; + public static final String GCUBE_PRE_PROD_PREVRE; + + public static final String GCUBE_PRE_PROD_PARTHENOS_REGISTRY_VARNAME = "GCUBE_PRE_PROD_PARTHENOS_REGISTRY"; + public static final String GCUBE_PRE_PROD_PARTHENOS_REGISTRY; + + public static final String ROOT_VARNAME = "ROOT"; + public static final String ROOT; + + static { + Properties properties = new Properties(); + InputStream input = ContextTest.class.getClassLoader().getResourceAsStream(PROPERTIES_FILENAME); + + try { + // load the properties file + properties.load(input); + } catch (IOException e) { + throw new RuntimeException(e); + } + + GCUBE = properties.getProperty(GCUBE_VARNAME); + + GCUBE_DEVNEXT = properties.getProperty(GCUBE_DEVNEXT_VARNAME); + GCUBE_DEVNEXT_NEXTNEXT = properties.getProperty(GCUBE_DEVNEXT_NEXTNEXT_VARNAME); + + GCUBE_DEVSEC = properties.getProperty(GCUBE_DEVSEC_VARNAME); + GCUBE_DEVSEC_DEVVRE = properties.getProperty(GCUBE_DEVSEC_DEVVRE_VARNAME); + + GCUBE_DEVNEXT_ANOTHER_USER = properties.getProperty(GCUBE_DEVNEXT_ANOTHER_USER_VARNAME); + + GCUBE_PRE_PROD_PARTHENOS_REGISTRY = properties.getProperty(GCUBE_PRE_PROD_PARTHENOS_REGISTRY_VARNAME); + GCUBE_PRE_PROD_PREVRE = properties.getProperty(GCUBE_PRE_PROD_PREVRE_VARNAME); + ROOT = properties.getProperty(ROOT_VARNAME); + + DEFAULT_TEST_SCOPE = GCUBE_PRE_PROD_PREVRE; + + } + + public static String getCurrentScope(String token) throws ObjectNotFound, Exception{ + AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token); + String context = authorizationEntry.getContext(); + logger.info("Context of token {} is {}", token, context); + return context; + } + + + public static void setContext(String token) throws ObjectNotFound, Exception{ + SecurityTokenProvider.instance.set(token); + AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token); + ClientInfo clientInfo = authorizationEntry.getClientInfo(); + logger.debug("User : {} - Type : {}", clientInfo.getId(), clientInfo.getType().name()); + String qualifier = authorizationEntry.getQualifier(); + Caller caller = new Caller(clientInfo, qualifier); + AuthorizationProvider.instance.set(caller); + ScopeProvider.instance.set(getCurrentScope(token)); + } + + @BeforeClass + public static void beforeClass() throws Exception{ + setContext(DEFAULT_TEST_SCOPE); + } + + @AfterClass + public static void afterClass() throws Exception{ + SecurityTokenProvider.instance.reset(); + ScopeProvider.instance.reset(); + } + +} diff --git a/src/test/java/org/gcube/hl/ContextUtility.java b/src/test/java/org/gcube/hl/ContextUtility.java new file mode 100644 index 0000000..db44dc8 --- /dev/null +++ b/src/test/java/org/gcube/hl/ContextUtility.java @@ -0,0 +1,81 @@ +package org.gcube.hl; + +import org.gcube.common.authorization.client.Constants; +import org.gcube.common.authorization.client.exceptions.ObjectNotFound; +import org.gcube.common.authorization.library.AuthorizationEntry; +import org.gcube.common.authorization.library.ClientType; +import org.gcube.common.authorization.library.provider.AuthorizationProvider; +import org.gcube.common.authorization.library.provider.ClientInfo; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.authorization.library.utils.Caller; +import org.gcube.common.scope.api.ScopeProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * @author Luca Frosini (ISTI - CNR) + */ +public class ContextUtility { + + private static Logger logger = LoggerFactory.getLogger(ContextUtility.class); + + public static void setContext(String token) throws ObjectNotFound, Exception{ + SecurityTokenProvider.instance.set(token); + AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token); + ClientInfo clientInfo = authorizationEntry.getClientInfo(); + logger.debug("User : {} - Type : {}", clientInfo.getId(), clientInfo.getType().name()); + String qualifier = authorizationEntry.getQualifier(); + Caller caller = new Caller(clientInfo, qualifier); + AuthorizationProvider.instance.set(caller); + ScopeProvider.instance.set(getCurrentContext()); + } + + public static String getCurrentContext() { + try { + String token = SecurityTokenProvider.instance.get(); + return Constants.authorizationService().get(token).getContext(); + }catch (Exception e) { + String context = ScopeProvider.instance.get(); + if(context!=null) { + return context; + } + throw new RuntimeException(e); + } + } + + public static ClientInfo getClientInfo() { + try { + Caller caller = AuthorizationProvider.instance.get(); + if(caller!=null){ + return caller.getClient(); + }else{ + String token = SecurityTokenProvider.instance.get(); + AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token); + return authorizationEntry.getClientInfo(); + } + }catch (Exception e) { + throw new RuntimeException(e); + } + } + + private static final String GET_USERNAME_ERROR = "Unable to retrieve user"; + + public static String getUsername() { + try { + return getClientInfo().getId(); + } catch (Exception e) { + logger.error(GET_USERNAME_ERROR); + throw new RuntimeException(GET_USERNAME_ERROR, e); + } + } + + public static boolean isApplication() { + try { + ClientInfo clientInfo = getClientInfo(); + return clientInfo.getType() == ClientType.EXTERNALSERVICE ; + }catch (Exception e) { + throw new RuntimeException(e); + } + } + +} diff --git a/src/test/java/org/gcube/hl/HLCatalogueSpecialFolderTest.java b/src/test/java/org/gcube/hl/HLCatalogueSpecialFolderTest.java new file mode 100644 index 0000000..4f42017 --- /dev/null +++ b/src/test/java/org/gcube/hl/HLCatalogueSpecialFolderTest.java @@ -0,0 +1,58 @@ +package org.gcube.hl; + +import java.util.List; + +import org.gcube.common.homelibrary.home.Home; +import org.gcube.common.homelibrary.home.HomeLibrary; +import org.gcube.common.homelibrary.home.HomeManager; +import org.gcube.common.homelibrary.home.HomeManagerFactory; +import org.gcube.common.homelibrary.home.User; +import org.gcube.common.homelibrary.home.workspace.Workspace; +import org.gcube.common.homelibrary.home.workspace.WorkspaceFolder; +import org.gcube.common.homelibrary.home.workspace.WorkspaceItem; +import org.gcube.common.homelibrary.home.workspace.WorkspaceSharedFolder; +import org.gcube.common.homelibrary.home.workspace.catalogue.WorkspaceCatalogue; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class HLCatalogueSpecialFolderTest { + + private static final Logger logger = LoggerFactory.getLogger(HLCatalogueSpecialFolderTest.class); + + @Test + public void getHLCatalogueFolderForVRE() throws Exception { + ContextTest.setContext("2d23f22a-a391-41e3-afee-3825953e1ad4-843339462"); + String username = ContextUtility.getUsername(); + HomeManagerFactory factory = HomeLibrary.getHomeManagerFactory(); + HomeManager manager = factory.getHomeManager(); + User user = manager.getUser(username); + @SuppressWarnings("deprecation") + Home home = manager.getHome(user); + Workspace ws = home.getWorkspace(); + + + WorkspaceSharedFolder vreFolder = ws.getVREFolderByScope(ContextUtility.getCurrentContext()); + WorkspaceCatalogue workspaceCatalogue = vreFolder.getVRECatalogue(); + + logger.debug("{} {} {}", workspaceCatalogue.getId(), workspaceCatalogue.getPath(), workspaceCatalogue.isHidden()? " (hidden)":""); + + List workspaceItems = workspaceCatalogue.getChildren(true); + for(WorkspaceItem workspaceItem : workspaceItems) { + logger.debug("{} {} {}", workspaceItem.getId(), workspaceItem.getPath(), workspaceItem.isHidden()? " (hidden)":""); + if(workspaceItem.getId().compareTo("d81bd0dc-40c4-4a4f-b4c2-6e0642c5215d")==0) { + WorkspaceFolder workspaceFolder = (WorkspaceFolder) workspaceItem; + List stockWorkspaceItems = workspaceFolder.getChildren(true); + for(WorkspaceItem stockWorkspaceItem : stockWorkspaceItems) { + logger.debug("{} {} {}", stockWorkspaceItem.getId(), stockWorkspaceItem.getPath(), stockWorkspaceItem.isHidden()? " (hidden)":""); + // stockWorkspaceItem.setHidden(false); + //stockWorkspaceItem.remove(); + } + + //workspaceItem.remove(); + } + } + + } + +}