/** * */ package org.gcube.informationsystem.resourceregistry; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.gcube.common.authorization.utils.manager.SecretManager; import org.gcube.common.authorization.utils.manager.SecretManagerProvider; import org.gcube.common.authorization.utils.secret.Secret; import org.gcube.common.authorization.utils.secret.SecretUtility; import org.gcube.informationsystem.model.reference.properties.Header; 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 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 GCUBE; public static final String DEVNEXT; public static final String NEXTNEXT; public static final String DEVSEC; public static final String DEVVRE; static { 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); } // PARENT_DEFAULT_TEST_SCOPE = "/pred4s" // DEFAULT_TEST_SCOPE_NAME = PARENT_DEFAULT_TEST_SCOPE + "/preprod"; // ALTERNATIVE_TEST_SCOPE = DEFAULT_TEST_SCOPE_NAME + "/preVRE"; GCUBE = "/gcube"; DEVNEXT = GCUBE + "/devNext"; NEXTNEXT = DEVNEXT + "/NextNext"; DEVSEC = GCUBE + "/devsec"; DEVVRE = DEVSEC + "/devVRE"; PARENT_DEFAULT_TEST_SCOPE = "/gcube"; DEFAULT_TEST_SCOPE = PARENT_DEFAULT_TEST_SCOPE + "/devNext"; ALTERNATIVE_TEST_SCOPE = DEFAULT_TEST_SCOPE + "/NextNext"; } public static void set(Secret secret) throws Exception { SecretManagerProvider.instance.reset(); SecretManager secretManager = new SecretManager(); SecretManagerProvider.instance.set(secretManager); secretManager.addSecret(secret); secretManager.set(); } public static void setContext(String token) throws Exception { Secret secret = getSecret(token); set(secret); } public static void setContextByName(String fullContextName) throws Exception { Secret secret = getSecretByContextName(fullContextName); set(secret); } private static Secret getSecret(String token) throws Exception { Secret secret = SecretUtility.getSecretByTokenString(token); return secret; } private static Secret getSecretByContextName(String fullContextName) throws Exception { String token = ContextTest.properties.getProperty(fullContextName); return getSecret(token); } public static String getUser() { String user = Header.UNKNOWN_USER; try { user = SecretManagerProvider.instance.get().getUser().getUsername(); } catch(Exception e) { logger.error("Unable to retrieve user. {} will be used", user); } return user; } @BeforeClass public static void beforeClass() throws Exception { setContextByName(DEFAULT_TEST_SCOPE); } @AfterClass public static void afterClass() throws Exception { SecretManagerProvider.instance.reset(); } }