diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/ContextTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/ContextTest.java index fb714e7..a3edeb0 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/ContextTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/ContextTest.java @@ -10,7 +10,10 @@ 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.gcube.informationsystem.resourceregistry.client.ResourceRegistryClientFactorySetter; import org.junit.AfterClass; @@ -26,92 +29,95 @@ 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_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; - - public static final String GCUBE_VARNAME = "GCUBE"; - public static final String GCUBE; - + protected static Properties properties; + protected static final String PROPERTIES_FILENAME = "token.properties"; + public static final String PARENT_DEFAULT_TEST_SCOPE; public static final String DEFAULT_TEST_SCOPE; public static final String ALTERNATIVE_TEST_SCOPE; + public static final String DEFAULT_TEST_SCOPE_ANOTHER_USER; protected static final String REGISTRY_PROPERTIES_FILENAME = "registry.properties"; public static final String RESOURCE_REGISTRY_URL_PROPERTY = "RESOURCE_REGISTRY_URL"; public static final String RESOURCE_REGISTRY_URL; 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_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 = properties.getProperty(GCUBE_VARNAME); - - DEFAULT_TEST_SCOPE = GCUBE_DEVSEC; - ALTERNATIVE_TEST_SCOPE = GCUBE_DEVSEC_DEVVRE; - - properties = new Properties(); - input = ContextTest.class.getClassLoader().getResourceAsStream(REGISTRY_PROPERTIES_FILENAME); - + InputStream input = ContextTest.class.getClassLoader().getResourceAsStream(PROPERTIES_FILENAME); + try { // load the properties file properties.load(input); + } catch(IOException e) { + throw new RuntimeException(e); + } + + // PARENT_DEFAULT_TEST_SCOPE = "/pred4s" + // DEFAULT_TEST_SCOPE_NAME = PARENT_DEFAULT_TEST_SCOPE + "/preprod"; + // ALTERNATIVE_TEST_SCOPE = DEFAULT_TEST_SCOPE_NAME + "/preVRE"; + + + PARENT_DEFAULT_TEST_SCOPE = "/gcube"; + DEFAULT_TEST_SCOPE = PARENT_DEFAULT_TEST_SCOPE + "/devNext"; + ALTERNATIVE_TEST_SCOPE = DEFAULT_TEST_SCOPE + "/NextNext"; + + DEFAULT_TEST_SCOPE_ANOTHER_USER = "lucio.lelii_" + DEFAULT_TEST_SCOPE; + + try { + setContextByName(DEFAULT_TEST_SCOPE); + } catch(Exception e) { + throw new RuntimeException(e); + } + + + Properties registryProperties = new Properties(); + input = ContextTest.class.getClassLoader().getResourceAsStream(REGISTRY_PROPERTIES_FILENAME); + try { + // load the properties file + registryProperties.load(input); } catch (IOException e) { throw new RuntimeException(e); } - RESOURCE_REGISTRY_URL = properties.getProperty(RESOURCE_REGISTRY_URL_PROPERTY); + RESOURCE_REGISTRY_URL = registryProperties.getProperty(RESOURCE_REGISTRY_URL_PROPERTY); + if(RESOURCE_REGISTRY_URL!=null){ ResourceRegistryPublisherFactory.forceToURL(RESOURCE_REGISTRY_URL); ResourceRegistryClientFactorySetter.forceToURL(RESOURCE_REGISTRY_URL); } } - public static String getCurrentScope(String token) throws ObjectNotFound, Exception{ + 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 setContextByName(String fullContextName) throws ObjectNotFound, Exception { + String token = ContextTest.properties.getProperty(fullContextName); + setContext(token); + } - public static void setContext(String token) throws ObjectNotFound, Exception{ + private 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); + public static void beforeClass() throws Exception { + setContextByName(DEFAULT_TEST_SCOPE); } @AfterClass - public static void afterClass() throws Exception{ + public static void afterClass() throws Exception { SecurityTokenProvider.instance.reset(); ScopeProvider.instance.reset(); } diff --git a/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/MultiContextTest.java b/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/MultiContextTest.java index 4972663..ea24372 100644 --- a/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/MultiContextTest.java +++ b/src/test/java/org/gcube/informationsystem/resourceregistry/publisher/MultiContextTest.java @@ -148,14 +148,14 @@ public class MultiContextTest extends ContextTest { logger.debug("Changing token to test add to scope"); - ContextTest.setContext(ContextTest.ALTERNATIVE_TEST_SCOPE); + ContextTest.setContextByName(ContextTest.ALTERNATIVE_TEST_SCOPE); UUID hostingNodeUUID = createdHN.getHeader().getUUID(); UUID eServiceUUID = createdEService.getHeader().getUUID(); logger.debug("Changing token to test add to scope"); - ContextTest.setContext(ContextTest.ALTERNATIVE_TEST_SCOPE); + ContextTest.setContextByName(ContextTest.ALTERNATIVE_TEST_SCOPE); try { resourceRegistryClient.exists(EService.class, eServiceUUID); @@ -193,7 +193,7 @@ public class MultiContextTest extends ContextTest { logger.debug("Restoring original scope"); - ContextTest.setContext(ContextTest.DEFAULT_TEST_SCOPE); + ContextTest.setContextByName(ContextTest.DEFAULT_TEST_SCOPE); deleted = resourceRegistryPublisher.deleteResource(createdEService); Assert.assertTrue(deleted); diff --git a/src/test/resources/.gitignore b/src/test/resources/.gitignore new file mode 100644 index 0000000..fc26778 --- /dev/null +++ b/src/test/resources/.gitignore @@ -0,0 +1,8 @@ +/devNext.gcubekey +/devsec.gcubekey +/gcube.gcubekey +/registry.properties +/registry.properties.empty +/registry.properties.redirect-test +/registry.properties.test +/token.properties