package org.gcube.vremanagement.contextmanager; import static org.junit.Assert.assertTrue; import java.util.Collections; import javax.inject.Inject; import org.gcube.common.resources.gcore.Resource; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.vremanagement.contextmanager.collector.LegacyISConnector; import org.gcube.vremanagement.contextmanager.handlers.ContextContainer; import org.gcube.vremanagement.contextmanager.handlers.impl.ContextContainerImpl; import org.gcube.vremanagement.contextmanager.handlers.impl.DynamicResourceHandler; import org.gcube.vremanagement.contextmanager.handlers.impl.StaticResourceHandler; import org.gcube.vremanagement.contextmanager.model.collectors.CollectorsBackend; import org.gcube.vremanagement.contextmanager.model.exceptions.InvalidContextException; import org.gcube.vremanagement.contextmanager.model.types.Context; import org.gcube.vremanagement.contextmanager.operations.MandatoryVREOperationTest; import org.jglue.cdiunit.AdditionalClasses; import org.jglue.cdiunit.CdiRunner; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; @RunWith(CdiRunner.class) @AdditionalClasses({ContextContainerImpl.class, Factories.class, LegacyISConnector.class, DynamicResourceHandler.class, StaticResourceHandler.class, MandatoryVREOperationTest.class }) public class ScopeTester { @Inject ScopeInitializer scopeInitializer; @Inject ContextContainer container; @Inject ContextManager contextManager; @Inject CollectorsBackend is; @Inject Logger log; @Inject ResourceManager resourceManager; private static String resourceId = "eabfe9bb-001d-48bc-92dc-586eefdc2006"; private static String context = "/gcube/devNext"; private static String vreContext = "/gcube/devNext/NextNext"; @Before public void init() { ScopeProvider.instance.set(context); scopeInitializer.initScope(context); } @Test public void initTest() { container.getAvailableContexts().forEach(c -> { try { container.getResources(c).forEach(r-> log.debug(" {} res {} ",c,r)); } catch (InvalidContextException e) { // TODO Auto-generated catch block e.printStackTrace(); } }); } @Test public void addAndRemoveResourceScopeTest() throws InvalidContextException { Context context = container.getContextById(vreContext); resourceManager.addResourceToContext(context, resourceId); assertTrue(container.getResources(vreContext).contains(resourceId)); Resource res = is.find(resourceId); assertTrue(res.scopes().asCollection().contains(vreContext)); log.debug("scopes are {}",res.scopes().asCollection()); resourceManager.removeResourceFromContext(context, resourceId); assertTrue(!container.getResources(vreContext).contains(resourceId)); assertTrue(!is.find(resourceId).scopes().contains(vreContext)); } @Test public void createContextTest() throws InvalidContextException { contextManager.createContext(context, "newVRE", Collections.emptyList()); } }