package org.gcube.dataharvest; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.HashMap; import java.util.Map; import java.util.TimeZone; import org.gcube.dataharvest.utils.ScopedTest; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AccountingDataHarvesterPluginTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(AccountingDataHarvesterPluginTest.class); public static TimeZone UTC_TIMEZONE = TimeZone.getTimeZone("UTC"); public static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss.SSS Z"; public static final DateFormat DEFAULT_DATE_FORMAT; static { DEFAULT_DATE_FORMAT = getUTCDateFormat(DATETIME_PATTERN); } public static DateFormat getUTCDateFormat(String pattern){ DateFormat dateFormat = new SimpleDateFormat(pattern); dateFormat.setTimeZone(UTC_TIMEZONE); return dateFormat; } public static Calendar getUTCCalendarInstance(){ return Calendar.getInstance(UTC_TIMEZONE); } public static Calendar getAggregationStartCalendar(int year, int month, int day){ Calendar aggregationStartCalendar = getUTCCalendarInstance(); aggregationStartCalendar.set(Calendar.YEAR, year); aggregationStartCalendar.set(Calendar.MONTH, month); aggregationStartCalendar.set(Calendar.DAY_OF_MONTH, day); aggregationStartCalendar.set(Calendar.HOUR_OF_DAY, 0); aggregationStartCalendar.set(Calendar.MINUTE, 0); aggregationStartCalendar.set(Calendar.SECOND, 0); aggregationStartCalendar.set(Calendar.MILLISECOND, 0); logger.debug("{}", DEFAULT_DATE_FORMAT.format(aggregationStartCalendar.getTime())); return aggregationStartCalendar; } @Test public void test() { try { ScopedTest.setContext(ScopedTest.ROOT); DataHarvestPluginDeclaration dataHarvestPluginDeclaration = new DataHarvestPluginDeclaration(); AccountingDataHarvesterPlugin accountingDataHarvesterPlugin = new AccountingDataHarvesterPlugin(dataHarvestPluginDeclaration); Calendar from = getAggregationStartCalendar(2018, Calendar.APRIL, 1); Calendar to = getAggregationStartCalendar(2018, Calendar.APRIL, 30); Map map = new HashMap<>(); map.put(AccountingDataHarvesterPlugin.PARAMETER_FROM, from.getTime()); map.put(AccountingDataHarvesterPlugin.PARAMETER_TO, to.getTime()); map.put(AccountingDataHarvesterPlugin.TEST, true); accountingDataHarvesterPlugin.launch(map); logger.info("End."); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }