package eu.dnetlib.iis.wf.export.actionmanager.entity;
import static eu.dnetlib.iis.common.WorkflowRuntimeParameters.OOZIE_ACTION_OUTPUT_FILENAME;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import org.apache.commons.lang3.StringUtils;
import eu.dnetlib.actionmanager.actions.AtomicAction;
import eu.dnetlib.iis.wf.export.actionmanager.cfg.StaticConfigurationProvider;
/**
* Utility methods useful for assertion validation.
* @author mhorst
*
*/
public final class VerificationUtils {
// ------------------------------- CONSTRUCTORS -----------------------------
private VerificationUtils() {}
// ------------------------------- LOGIC ------------------------------------
/**
* Retrieves properties stored by entity exporter process.
*/
public static Properties getStoredProperties() throws FileNotFoundException, IOException {
Properties properties = new Properties();
properties.load(new FileInputStream(System.getProperty(OOZIE_ACTION_OUTPUT_FILENAME)));
return properties;
}
/**
* Verifies execution report.
*/
public static void verifyReport(int expectedTotal, int expectedMissing) throws FileNotFoundException, IOException {
Properties reportProperties = getStoredProperties();
assertEquals(2, reportProperties.size());
assertEquals(expectedTotal, Integer.parseInt(reportProperties.getProperty(AbstractEntityExporterProcess.TOTAL_ENTITIES_COUNTER_NAME)));
assertEquals(expectedMissing, Integer.parseInt(reportProperties.getProperty(AbstractEntityExporterProcess.MISSING_ENTITIES_COUNTER_NAME)));
}
/**
* Verifies entity action.
*/
public static void verifyAction(AtomicAction action, String actionSetId, String targetColumn, String targetColumnFamily) {
assertEquals(actionSetId, action.getRawSet());
assertTrue(action.getTargetValue().length > 0);
assertTrue(StringUtils.isNotBlank(action.getRowKey()));
assertTrue(StringUtils.isNotBlank(action.getTargetRowKey()));
assertEquals(targetColumn, action.getTargetColumn());
assertEquals(targetColumnFamily, action.getTargetColumnFamily());
assertEquals(StaticConfigurationProvider.AGENT_DEFAULT, action.getAgent());
}
}