use of org.talend.dataprep.transformation.api.action.context.ActionContext in project data-prep by Talend.
the class PipelineTest method testCleanUp.
@Test
public void testCleanUp() throws Exception {
// Given
final TransformationContext transformationContext = new TransformationContext();
final ActionContext actionContext = transformationContext.create((r, ac) -> r, new RowMetadata());
final AtomicInteger wasDestroyed = new AtomicInteger(0);
Destroyable destroyable = new Destroyable() {
@Override
public void destroy() {
wasDestroyed.incrementAndGet();
}
};
actionContext.get("test1", p -> destroyable);
actionContext.get("test2", p -> destroyable);
final Node node = //
NodeBuilder.source().to(//
new BasicNode()).to(//
new CleanUpNode(transformationContext)).to(//
output).build();
// when
node.exec().signal(END_OF_STREAM);
// then
assertEquals(2, wasDestroyed.get());
}
use of org.talend.dataprep.transformation.api.action.context.ActionContext in project data-prep by Talend.
the class UpdatedStepVisitorTest method setUp.
@Before
public void setUp() throws Exception {
actionContext = new ActionContext(new TransformationContext());
entryNode = new ActionNode(new RunnableAction((row, context) -> row), actionContext);
}
use of org.talend.dataprep.transformation.api.action.context.ActionContext in project data-prep by Talend.
the class FillWithNumericIfInvalidTest method should_not_fill_non_valid_integer.
@Test
public void should_not_fill_non_valid_integer() throws Exception {
// given
final Map<String, String> values = new HashMap<>();
values.put("0000", "David Bowie");
values.put("0001", "30");
values.put("0002", "Something");
final DataSetRow row = new DataSetRow(values);
final RowMetadata rowMetadata = row.getRowMetadata();
rowMetadata.getById("0001").setType(Type.INTEGER.getName());
Map<String, String> parameters = ActionMetadataTestUtils.parseParameters(this.getClass().getResourceAsStream("fillInvalidIntegerAction.json"));
// when
final RunnableAction runnableAction = factory.create(action, parameters);
final ActionContext context = new ActionContext(new TransformationContext(), rowMetadata);
context.setParameters(parameters);
runnableAction.getRowAction().apply(row, context);
// then
assertEquals("30", row.get("0001"));
assertEquals("David Bowie", row.get("0000"));
}
use of org.talend.dataprep.transformation.api.action.context.ActionContext in project data-prep by Talend.
the class FillWithNumericIfInvalidTest method should_fill_non_valid_integer.
@Test
public void should_fill_non_valid_integer() throws Exception {
// given
final Map<String, String> values = new HashMap<>();
values.put("0000", "David Bowie");
values.put("0001", "N");
values.put("0002", "Something");
final DataSetRow row = new DataSetRow(values);
row.setInvalid("0001");
final RowMetadata rowMetadata = row.getRowMetadata();
rowMetadata.getById("0001").setType(Type.INTEGER.getName());
Map<String, String> parameters = ActionMetadataTestUtils.parseParameters(this.getClass().getResourceAsStream("fillInvalidIntegerAction.json"));
// when
final RunnableAction runnableAction = factory.create(action, parameters);
final ActionContext context = new ActionContext(new TransformationContext(), rowMetadata);
context.setParameters(parameters);
runnableAction.getRowAction().apply(row, context);
// then
assertEquals("25", row.get("0001"));
assertEquals("David Bowie", row.get("0000"));
}
use of org.talend.dataprep.transformation.api.action.context.ActionContext in project data-prep by Talend.
the class FillWithStringIfInvalidTest method should_not_fill_non_valid_string.
@Test
public void should_not_fill_non_valid_string() throws Exception {
// given
final Map<String, String> values = new HashMap<>();
values.put("0000", "David Bowie");
values.put("0001", "N");
values.put("0002", "wine");
final DataSetRow row = new DataSetRow(values);
final RowMetadata rowMetadata = row.getRowMetadata();
rowMetadata.getById("0002").setType(Type.STRING.getName());
Map<String, String> parameters = ActionMetadataTestUtils.parseParameters(this.getClass().getResourceAsStream("fillInvalidStringAction.json"));
parameters.put(ImplicitParameters.COLUMN_ID.getKey().toLowerCase(), "0002");
// when
final RunnableAction runnableAction = factory.create(action, parameters);
final ActionContext context = new ActionContext(new TransformationContext(), rowMetadata);
context.setParameters(parameters);
runnableAction.getRowAction().apply(row, context);
// then
assertEquals("wine", row.get("0002"));
assertEquals("David Bowie", row.get("0000"));
}
Aggregations