package eu.dnetlib.iis.wf.export.actionmanager.module;
import static eu.dnetlib.iis.wf.export.actionmanager.ExportWorkflowRuntimeParameters.EXPORT_ALGORITHM_PROPERTY_SEPARATOR;
import static eu.dnetlib.iis.wf.export.actionmanager.ExportWorkflowRuntimeParameters.EXPORT_TRUST_LEVEL_THRESHOLD;
import static org.junit.Assert.assertTrue;
import org.apache.avro.specific.SpecificRecordBase;
import org.apache.hadoop.conf.Configuration;
import org.junit.Before;
import org.junit.Test;
import eu.dnetlib.actionmanager.common.Agent;
/**
* @author mhorst
*
*/
public abstract class AbstractActionBuilderModuleFactoryTest<T extends SpecificRecordBase> {
protected final float trustLevelThreshold = 0.5f;
protected final Configuration config;
protected final String actionSetId = "someActionSetId";
protected final Agent agent = new Agent("agentId", "agent name", Agent.AGENT_TYPE.service);
protected final AlgorithmName expectedAlgorithmName;
protected final ActionBuilderFactory<T> factory;
// -------------------------------- CONSTRUCTORS ----------------------------------
public AbstractActionBuilderModuleFactoryTest(Class<? extends ActionBuilderFactory<T>> factoryClass,
AlgorithmName expectedAlgorithmName) throws Exception {
this.factory = factoryClass.getConstructor().newInstance();
this.expectedAlgorithmName = expectedAlgorithmName;
this.config = new Configuration();
}
// -------------------------------- TESTS -----------------------------------------
@Before
public void init() throws Exception {
this.config.set(EXPORT_TRUST_LEVEL_THRESHOLD + EXPORT_ALGORITHM_PROPERTY_SEPARATOR + expectedAlgorithmName.name(),
String.valueOf(trustLevelThreshold));
}
@Test
public void testGetAlgorithmName() {
// execute & assert
assertTrue(expectedAlgorithmName == factory.getAlgorithName());
}
@Test(expected = NullPointerException.class)
public void testInstantiateNullAgent() throws Exception {
// execute
factory.instantiate(config, null, actionSetId);
}
@Test(expected = NullPointerException.class)
public void testInstantiateNullActionSetId() throws Exception {
// execute
factory.instantiate(config, agent, null);
}
@Test(expected = NullPointerException.class)
public void testBuildNullObject() throws Exception {
// given
ActionBuilderModule<T> module = factory.instantiate(config, agent, actionSetId);
// execute
module.build(null);
}
}