package com.sequenceiq.samples.core; import org.kitesdk.morphline.api.AbstractMorphlineTest; import org.kitesdk.morphline.api.Record; import org.kitesdk.morphline.base.Fields; import java.io.IOException; import java.util.List; import static org.hamcrest.core.IsEqual.equalTo; /** * Created by Ricsi on 2014.02.13.. */ public class BaseMorphlineTest extends AbstractMorphlineTest { private final String SEPARATOR = "\t"; protected void assertResult(String morphlineSpecification, String inputFile, String expectedFile) throws IOException { morphline = createMorphline(morphlineSpecification); List<String> inputFileRows = TestBasedFileReader.getFileContentAsList(inputFile); List<String> expectedFileRows = TestBasedFileReader.getFileContentAsList(expectedFile); String[] inputHeaders = inputFileRows.get(0).split(SEPARATOR); String[] expectedHeaders = expectedFileRows.get(0).split(SEPARATOR); for (int i = 1; i < inputFileRows.size(); i++) { String[] split = inputFileRows.get(i).split(SEPARATOR); Record inputRecord = new Record(); for (int j = 0; j < split.length; j++) { inputRecord.put(inputHeaders[j], split[j]); } String[] expectedSplit = expectedFileRows.get(i).split(SEPARATOR); Record expectedRecord = new Record(); for (int j = 0; j < expectedSplit.length; j++) { expectedRecord.put(expectedHeaders[j], expectedSplit[j]); } assertTrue(morphline.process(inputRecord)); assertThat(collector.getRecords().get(i-1), equalTo(expectedRecord)); } } }