You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

121 lines
4.3 KiB
Java

package org.gcube.resourcemanagement.manager.webapp.context;
import static org.junit.Assert.*;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.UUID;
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.SecurityTokenProvider;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.informationsystem.model.reference.entities.Context;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClient;
import org.gcube.informationsystem.resourceregistry.client.ResourceRegistryClientImpl;
import org.gcube.informationsystem.resourceregistry.context.ResourceRegistryContextClient;
import org.gcube.informationsystem.resourceregistry.context.ResourceRegistryContextClientImpl;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.MethodSorters;
/**
* Test cases for {@link Queries}
*
* @author Manuele Simi (ISTI CNR)
*/
@RunWith(BlockJUnit4ClassRunner.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class QueriesTest {
/**
* Resource Registry to contact
*/
private static String RR = "";
public static String DEFAULT_TEST_SCOPE = "";
public static final UUID context1UUID = RMContextTest.context1UUID;
private static boolean skipTest = false;
static {
Properties properties = new Properties();
try (InputStream input = RMContextTest.class.getClassLoader().getResourceAsStream("token.properties")) {
// load the properties file
properties.load(input);
} catch (IOException e) {
skipTest = true;
//throw new RuntimeException(e);
}
DEFAULT_TEST_SCOPE = properties.getProperty("DEFAULT_SCOPE_TOKEN");
if (DEFAULT_TEST_SCOPE.isEmpty())
skipTest = true;
RR = properties.getProperty("RR");
if (RR.isEmpty())
skipTest = true;
}
@BeforeClass
public static void beforeClass() throws Exception {
setContext(DEFAULT_TEST_SCOPE);
}
public static void setContext(String token) throws ObjectNotFound, Exception {
if (DEFAULT_TEST_SCOPE.isEmpty()) {
skipTest = true;
return;
}
SecurityTokenProvider.instance.set(token);
ScopeProvider.instance.set(getCurrentScope(token));
}
public static String getCurrentScope(String token) throws ObjectNotFound, Exception {
AuthorizationEntry authorizationEntry = Constants.authorizationService().get(token);
String context = authorizationEntry.getContext();
return context;
}
@AfterClass
public static void afterClass() throws Exception {
SecurityTokenProvider.instance.reset();
ScopeProvider.instance.reset();
}
/**
* Test method for {@link org.gcube.resourcemanagement.manager.webapp.context.Queries#contextExists(UUID)}.
*/
@Test
public void testContextExists() {
if (skipTest)
return;
ResourceRegistryContextClient cclient = new ResourceRegistryContextClientImpl(RR);
ResourceRegistryClient rclient = new ResourceRegistryClientImpl(RR);
Queries queries = new Queries(cclient, rclient);
assertFalse("Context does exist, but it should not", queries.contextExists(RMContextTest.context1UUID));
}
/**
* Test method for {@link org.gcube.resourcemanagement.manager.webapp.context.Queries#fetchContext(UUID)} .
*/
@Test
public void testFetchContext() {
if (skipTest)
return;
ResourceRegistryContextClient cclient = new ResourceRegistryContextClientImpl(RR);
ResourceRegistryClient rclient = new ResourceRegistryClientImpl(RR);
Queries queries = new Queries(cclient, rclient);
Context context = queries.fetchContext(context1UUID);
assertNotNull("Context does not exist.", context);
assertEquals("Unexpected uuid for context", context1UUID, context.getHeader().getUUID());
}
}