/** * */ package org.gcube.accounting.couchdb.query; import java.util.HashMap; import java.util.Map; import java.util.UUID; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.testutility.ScopedTest; import org.gcube.vremanagement.executor.api.types.LaunchParameter; import org.gcube.vremanagement.executor.api.types.Scheduling; import org.gcube.vremanagement.executor.client.plugins.ExecutorPlugin; import org.gcube.vremanagement.executor.client.proxies.SmartExecutorProxy; import org.junit.Assert; import org.junit.Before; import org.quartz.CronExpression; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) */ public class CouchDBQueryPluginSmartExecutorSchedulerTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(CouchDBQueryPluginSmartExecutorSchedulerTest.class); public static final String START = "START"; public static final String END = "END"; public static final String SCOPE = ""; private SmartExecutorProxy proxy; @Before public void before() throws Exception{ ScopeProvider.instance.reset(); // Comment this to run the test. this line has been added to avoid unwanted launch proxy = ExecutorPlugin.getExecutorProxy(CouchDBQueryPluginDeclaration.NAME).build(); Assert.assertNotNull(proxy); } public UUID scheduleTest(Scheduling scheduling, Long sleepTime) throws Exception { Map inputs = new HashMap(); if(sleepTime==null){ sleepTime = new Long(10*1000); // 10 sec = 10 * 1000 millisec } inputs.put(CouchDBQueryPlugin.DELAY_MILLIS, sleepTime); logger.debug("Inputs : {}", inputs); LaunchParameter parameter = new LaunchParameter(CouchDBQueryPluginDeclaration.NAME, inputs); parameter.setScheduling(scheduling); String uuidString = proxy.launch(parameter); return UUID.fromString(uuidString); } //@Test public void cronExpPreviousMustBeTerminated() throws Exception { CronExpression cronExpression = new CronExpression("0 */10 * * * ?"); // every 10 minutes starting from now Scheduling scheduling = new Scheduling(cronExpression, true); scheduling.setGlobal(true); UUID uuid = scheduleTest(scheduling, new Long(1000*60)); // 1 min logger.debug("Launched with UUID : {}", uuid); } //@Test public void unSchedule() throws Exception { proxy.unSchedule(null, true); } }