Search in sources :

Example 1 with Cause

use of io.cdap.cdap.etl.api.validation.ValidationFailure.Cause in project hydrator-plugins by cdapio.

the class ValueMapperTest method testMappingValidation.

@Test
public void testMappingValidation() throws Exception {
    Schema inputSchema = Schema.recordOf("sourceRecord", Schema.Field.of(ID, Schema.of(Schema.Type.STRING)), Schema.Field.of(NAME, Schema.of(Schema.Type.STRING)), Schema.Field.of(SALARY, Schema.of(Schema.Type.STRING)), Schema.Field.of(DESIGNATIONID, Schema.of(Schema.Type.STRING)));
    ValueMapper.Config config = new ValueMapper.Config("designationid:designation_lookup_table", "designationid:DEFAULTID");
    MockPipelineConfigurer configurer = new MockPipelineConfigurer(inputSchema);
    try {
        new ValueMapper(config).configurePipeline(configurer);
        Assert.fail();
    } catch (ValidationException e) {
        Assert.assertEquals(1, e.getFailures().size());
        Assert.assertEquals(1, e.getFailures().get(0).getCauses().size());
        Cause expectedCause = new Cause();
        expectedCause.addAttribute(STAGE, MOCK_STAGE);
        expectedCause.addAttribute(CauseAttributes.STAGE_CONFIG, ValueMapper.Config.MAPPING);
        expectedCause.addAttribute(CauseAttributes.CONFIG_ELEMENT, "designationid:designation_lookup_table");
        Assert.assertEquals(expectedCause, e.getFailures().get(0).getCauses().get(0));
    }
}
Also used : ValidationException(io.cdap.cdap.etl.api.validation.ValidationException) MockPipelineConfigurer(io.cdap.cdap.etl.mock.common.MockPipelineConfigurer) ETLBatchConfig(io.cdap.cdap.etl.proto.v2.ETLBatchConfig) Schema(io.cdap.cdap.api.data.schema.Schema) Cause(io.cdap.cdap.etl.api.validation.ValidationFailure.Cause) Test(org.junit.Test)

Example 2 with Cause

use of io.cdap.cdap.etl.api.validation.ValidationFailure.Cause in project hydrator-plugins by cdapio.

the class XMLParserTest method testInputFieldNotInSchema.

@Test
public void testInputFieldNotInSchema() throws Exception {
    Schema schema = Schema.recordOf("record", Schema.Field.of("title", Schema.nullableOf(Schema.of(Schema.Type.STRING))), Schema.Field.of("author", Schema.nullableOf(Schema.of(Schema.Type.STRING))), Schema.Field.of("year", Schema.nullableOf(Schema.of(Schema.Type.STRING))));
    XMLParser.Config config = new XMLParser.Config("x", "UTF-8", "title:/book/title,author:/book/author,year:/book/year", "title:string,author:string,year:string", "Write to error dataset");
    MockPipelineConfigurer configurer = new MockPipelineConfigurer(INPUT);
    new XMLParser(config).configurePipeline(configurer);
    FailureCollector collector = configurer.getStageConfigurer().getFailureCollector();
    Assert.assertEquals(1, collector.getValidationFailures().size());
    Assert.assertEquals(1, collector.getValidationFailures().get(0).getCauses().size());
    Cause expectedCause = new Cause();
    expectedCause.addAttribute(CauseAttributes.STAGE_CONFIG, XMLParser.Config.INPUT);
    Assert.assertEquals(expectedCause, collector.getValidationFailures().get(0).getCauses().get(0));
}
Also used : MockPipelineConfigurer(io.cdap.cdap.etl.mock.common.MockPipelineConfigurer) Schema(io.cdap.cdap.api.data.schema.Schema) Cause(io.cdap.cdap.etl.api.validation.ValidationFailure.Cause) FailureCollector(io.cdap.cdap.etl.api.FailureCollector) Test(org.junit.Test)

Example 3 with Cause

use of io.cdap.cdap.etl.api.validation.ValidationFailure.Cause in project hydrator-plugins by cdapio.

the class XMLReaderConfigTest method testEmptyTargetFolder.

@Test
public void testEmptyTargetFolder() {
    XMLReaderBatchSource.XMLReaderConfig config = new XMLReaderBatchSource.XMLReaderConfig("emptyTargetFolderReference", "/opt/hdfs/catalog.xml", null, "/catalog/book/", "Move", "", "No", "XMLTrackingTable", 30, "/tmp");
    FailureCollector collector = new MockFailureCollector();
    config.validate(collector);
    Assert.assertEquals(1, collector.getValidationFailures().size());
    Assert.assertEquals(1, collector.getValidationFailures().get(0).getCauses().size());
    Cause expectedCause = new Cause();
    expectedCause.addAttribute(CauseAttributes.STAGE_CONFIG, XMLReaderBatchSource.XMLReaderConfig.TARGET_FOLDER);
    Assert.assertEquals(expectedCause, collector.getValidationFailures().get(0).getCauses().get(0));
}
Also used : Cause(io.cdap.cdap.etl.api.validation.ValidationFailure.Cause) MockFailureCollector(io.cdap.cdap.etl.mock.validation.MockFailureCollector) MockFailureCollector(io.cdap.cdap.etl.mock.validation.MockFailureCollector) FailureCollector(io.cdap.cdap.etl.api.FailureCollector) Test(org.junit.Test)

Example 4 with Cause

use of io.cdap.cdap.etl.api.validation.ValidationFailure.Cause in project hydrator-plugins by cdapio.

the class XMLReaderConfigTest method testEmptyPath.

@Test
public void testEmptyPath() {
    XMLReaderBatchSource.XMLReaderConfig config = new XMLReaderBatchSource.XMLReaderConfig("emptyPathReference", "", null, "/catalog/book/", null, null, "Yes", "XMLTrackingTable", 30, "/tmp");
    FailureCollector collector = new MockFailureCollector();
    config.validate(collector);
    Assert.assertEquals(1, collector.getValidationFailures().size());
    Assert.assertEquals(1, collector.getValidationFailures().get(0).getCauses().size());
    Cause expectedCause = new Cause();
    expectedCause.addAttribute(CauseAttributes.STAGE_CONFIG, XMLReaderBatchSource.XMLReaderConfig.PATH);
    Assert.assertEquals(expectedCause, collector.getValidationFailures().get(0).getCauses().get(0));
}
Also used : Cause(io.cdap.cdap.etl.api.validation.ValidationFailure.Cause) MockFailureCollector(io.cdap.cdap.etl.mock.validation.MockFailureCollector) MockFailureCollector(io.cdap.cdap.etl.mock.validation.MockFailureCollector) FailureCollector(io.cdap.cdap.etl.api.FailureCollector) Test(org.junit.Test)

Example 5 with Cause

use of io.cdap.cdap.etl.api.validation.ValidationFailure.Cause in project hydrator-plugins by cdapio.

the class JoinerConfigTest method testJoinerConfigWithDuplicateOutputFields.

@Test
public void testJoinerConfigWithDuplicateOutputFields() {
    String selectedFields = "film.film_id, film.film_name, " + "filmActor.actor_name as name, filmCategory.category_name as name";
    JoinerConfig config = new JoinerConfig("film.film_id=filmActor.film_id=filmCategory.film_id&" + "film.film_name=filmActor.film_name=filmCategory.film_name", selectedFields, "film,filmActor,filmCategory");
    Joiner joiner = new Joiner(config);
    FailureCollector collector = new MockFailureCollector();
    AutoJoinerContext autoJoinerContext = new MockAutoJoinerContext(INPUT_STAGES, collector);
    try {
        joiner.define(autoJoinerContext);
        Assert.fail();
    } catch (ValidationException e) {
        Assert.assertEquals(1, e.getFailures().size());
        Assert.assertEquals(1, e.getFailures().get(0).getCauses().size());
        Cause expectedCause = new Cause();
        expectedCause.addAttribute(CauseAttributes.STAGE_CONFIG, JoinerConfig.SELECTED_FIELDS);
        expectedCause.addAttribute(STAGE, MOCK_STAGE);
        expectedCause.addAttribute(CauseAttributes.CONFIG_ELEMENT, "filmCategory.category_name as name");
        Assert.assertEquals(expectedCause, e.getFailures().get(0).getCauses().get(0));
    }
}
Also used : AutoJoinerContext(io.cdap.cdap.etl.api.join.AutoJoinerContext) ValidationException(io.cdap.cdap.etl.api.validation.ValidationException) Cause(io.cdap.cdap.etl.api.validation.ValidationFailure.Cause) MockFailureCollector(io.cdap.cdap.etl.mock.validation.MockFailureCollector) FailureCollector(io.cdap.cdap.etl.api.FailureCollector) MockFailureCollector(io.cdap.cdap.etl.mock.validation.MockFailureCollector) Test(org.junit.Test)

Aggregations

Cause (io.cdap.cdap.etl.api.validation.ValidationFailure.Cause)24 Test (org.junit.Test)24 ValidationException (io.cdap.cdap.etl.api.validation.ValidationException)17 Schema (io.cdap.cdap.api.data.schema.Schema)13 FailureCollector (io.cdap.cdap.etl.api.FailureCollector)12 MockPipelineConfigurer (io.cdap.cdap.etl.mock.common.MockPipelineConfigurer)12 MockFailureCollector (io.cdap.cdap.etl.mock.validation.MockFailureCollector)9 StructuredRecord (io.cdap.cdap.api.data.format.StructuredRecord)3 TransformContext (io.cdap.cdap.etl.api.TransformContext)3 AutoJoinerContext (io.cdap.cdap.etl.api.join.AutoJoinerContext)3 MockTransformContext (io.cdap.cdap.etl.mock.transform.MockTransformContext)3 ETLBatchConfig (io.cdap.cdap.etl.proto.v2.ETLBatchConfig)3 JoinStage (io.cdap.cdap.etl.api.join.JoinStage)2 ValidationFailure (io.cdap.cdap.etl.api.validation.ValidationFailure)2 HashMap (java.util.HashMap)2 PipelineConfigurer (io.cdap.cdap.etl.api.PipelineConfigurer)1 MockEmitter (io.cdap.cdap.etl.mock.common.MockEmitter)1