/*! ******************************************************************************
*
* Pentaho Data Integration
*
* Copyright (C) 2002-2017 by Pentaho : http://www.pentaho.com
*
*******************************************************************************
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************/
package org.pentaho.di.trans.steps.fileinput.text;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.pentaho.di.core.injection.BaseMetadataInjectionTest;
import org.pentaho.di.core.row.ValueMetaInterface;
import org.pentaho.di.core.row.value.ValueMetaString;
public class TextFileInputMetaNewInjectionTest extends BaseMetadataInjectionTest<TextFileInputMeta> {
@Before
public void setup() {
setup( new TextFileInputMeta() );
}
@Test
public void test() throws Exception {
check( "FILE_TYPE", new StringGetter() {
public String get() {
return meta.content.fileType;
}
} );
check( "SEPARATOR", new StringGetter() {
public String get() {
return meta.content.separator;
}
} );
check( "ENCLOSURE", new StringGetter() {
public String get() {
return meta.content.enclosure;
}
} );
check( "BREAK_IN_ENCLOSURE", new BooleanGetter() {
public boolean get() {
return meta.content.breakInEnclosureAllowed;
}
} );
check( "ESCAPE_CHAR", new StringGetter() {
public String get() {
return meta.content.escapeCharacter;
}
} );
check( "HEADER_PRESENT", new BooleanGetter() {
public boolean get() {
return meta.content.header;
}
} );
check( "NR_HEADER_LINES", new IntGetter() {
public int get() {
return meta.content.nrHeaderLines;
}
} );
check( "HAS_FOOTER", new BooleanGetter() {
public boolean get() {
return meta.content.footer;
}
} );
check( "NR_FOOTER_LINES", new IntGetter() {
public int get() {
return meta.content.nrFooterLines;
}
} );
check( "HAS_WRAPPED_LINES", new BooleanGetter() {
public boolean get() {
return meta.content.lineWrapped;
}
} );
check( "NR_WRAPS", new IntGetter() {
public int get() {
return meta.content.nrWraps;
}
} );
check( "HAS_PAGED_LAYOUT", new BooleanGetter() {
public boolean get() {
return meta.content.layoutPaged;
}
} );
check( "NR_LINES_PER_PAGE", new IntGetter() {
public int get() {
return meta.content.nrLinesPerPage;
}
} );
check( "NR_DOC_HEADER_LINES", new IntGetter() {
public int get() {
return meta.content.nrLinesDocHeader;
}
} );
check( "COMPRESSION_TYPE", new StringGetter() {
public String get() {
return meta.content.fileCompression;
}
} );
check( "NO_EMPTY_LINES", new BooleanGetter() {
public boolean get() {
return meta.content.noEmptyLines;
}
} );
check( "INCLUDE_FILENAME", new BooleanGetter() {
public boolean get() {
return meta.content.includeFilename;
}
} );
check( "FILENAME_FIELD", new StringGetter() {
public String get() {
return meta.content.filenameField;
}
} );
check( "INCLUDE_ROW_NUMBER", new BooleanGetter() {
public boolean get() {
return meta.content.includeRowNumber;
}
} );
check( "ROW_NUMBER_FIELD", new StringGetter() {
public String get() {
return meta.content.rowNumberField;
}
} );
check( "ROW_NUMBER_BY_FILE", new BooleanGetter() {
public boolean get() {
return meta.content.rowNumberByFile;
}
} );
check( "FILE_FORMAT", new StringGetter() {
public String get() {
return meta.content.fileFormat;
}
} );
check( "ENCODING", new StringGetter() {
public String get() {
return meta.content.encoding;
}
} );
check( "LENGTH", new StringGetter() {
public String get() {
return meta.content.length;
}
} );
check( "ROW_LIMIT", new LongGetter() {
public long get() {
return meta.content.rowLimit;
}
} );
check( "DATE_FORMAT_LENIENT", new BooleanGetter() {
public boolean get() {
return meta.content.dateFormatLenient;
}
} );
check( "DATE_FORMAT_LOCALE", new StringGetter() {
public String get() {
return meta.content.dateFormatLocale.toString();
}
}, "en", "en_us" );
///////////////////////////////
check( "FILTER_POSITION", new IntGetter() {
public int get() {
return meta.getFilter()[0].getFilterPosition();
}
} );
check( "FILTER_STRING", new StringGetter() {
public String get() {
return meta.getFilter()[0].getFilterString();
}
} );
check( "FILTER_LAST_LINE", new BooleanGetter() {
public boolean get() {
return meta.getFilter()[0].isFilterLastLine();
}
} );
check( "FILTER_POSITIVE", new BooleanGetter() {
public boolean get() {
return meta.getFilter()[0].isFilterPositive();
}
} );
///////////////////////////////
check( "FILENAME", new StringGetter() {
public String get() {
return meta.inputFiles.fileName[0];
}
} );
check( "FILEMASK", new StringGetter() {
public String get() {
return meta.inputFiles.fileMask[0];
}
} );
check( "EXCLUDE_FILEMASK", new StringGetter() {
public String get() {
return meta.inputFiles.excludeFileMask[0];
}
} );
check( "FILE_REQUIRED", new StringGetter() {
public String get() {
return meta.inputFiles.fileRequired[0];
}
} );
check( "INCLUDE_SUBFOLDERS", new StringGetter() {
public String get() {
return meta.inputFiles.includeSubFolders[0];
}
} );
check( "ACCEPT_FILE_NAMES", new BooleanGetter() {
public boolean get() {
return meta.inputFiles.acceptingFilenames;
}
} );
check( "ACCEPT_FILE_STEP", new StringGetter() {
public String get() {
return meta.inputFiles.acceptingStepName;
}
} );
check( "PASS_THROUGH_FIELDS", new BooleanGetter() {
public boolean get() {
return meta.inputFiles.passingThruFields;
}
} );
check( "ACCEPT_FILE_FIELD", new StringGetter() {
public String get() {
return meta.inputFiles.acceptingField;
}
} );
check( "ADD_FILES_TO_RESULT", new BooleanGetter() {
public boolean get() {
return meta.inputFiles.isaddresult;
}
} );
/////////////////////////////
check( "FIELD_NAME", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getName();
}
} );
check( "FIELD_POSITION", new IntGetter() {
public int get() {
return meta.inputFiles.inputFields[0].getPosition();
}
} );
check( "FIELD_LENGTH", new IntGetter() {
public int get() {
return meta.inputFiles.inputFields[0].getLength();
}
} );
// TODO check field type plugins
// ValueMetaInterface mft = new ValueMetaString( "f" );
// ValueMetaFactory.createValueMeta( "INTEGER", 5 );
// injector.setProperty( meta, "FIELD_TYPE", setValue( mft, "INTEGER" ), "f" );
// assertEquals( 5, meta.inputFiles.inputFields[0].getType() );
skipPropertyTest( "FIELD_TYPE" );
check( "FIELD_IGNORE", new BooleanGetter() {
public boolean get() {
return meta.inputFiles.inputFields[0].isIgnored();
}
} );
check( "FIELD_FORMAT", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getFormat();
}
} );
ValueMetaInterface mftt = new ValueMetaString( "f" );
injector.setProperty( meta, "FIELD_TRIM_TYPE", setValue( mftt, "left" ), "f" );
assertEquals( 1, meta.inputFiles.inputFields[0].getTrimType() );
injector.setProperty( meta, "FIELD_TRIM_TYPE", setValue( mftt, "right" ), "f" );
assertEquals( 2, meta.inputFiles.inputFields[0].getTrimType() );
skipPropertyTest( "FIELD_TRIM_TYPE" );
check( "FIELD_PRECISION", new IntGetter() {
public int get() {
return meta.inputFiles.inputFields[0].getPrecision();
}
} );
check( "FIELD_CURRENCY", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getCurrencySymbol();
}
} );
check( "FIELD_DECIMAL", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getDecimalSymbol();
}
} );
check( "FIELD_GROUP", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getGroupSymbol();
}
} );
check( "FIELD_REPEAT", new BooleanGetter() {
public boolean get() {
return meta.inputFiles.inputFields[0].isRepeated();
}
} );
check( "FIELD_NULL_STRING", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getNullString();
}
} );
check( "FIELD_IF_NULL", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getIfNullValue();
}
} );
///////////////////////////////
check( "IGNORE_ERRORS", new BooleanGetter() {
public boolean get() {
return meta.errorHandling.errorIgnored;
}
} );
check( "FILE_ERROR_FIELD", new StringGetter() {
public String get() {
return meta.errorHandling.fileErrorField;
}
} );
check( "FILE_ERROR_MESSAGE_FIELD", new StringGetter() {
public String get() {
return meta.errorHandling.fileErrorMessageField;
}
} );
check( "SKIP_BAD_FILES", new BooleanGetter() {
public boolean get() {
return meta.errorHandling.skipBadFiles;
}
} );
check( "WARNING_FILES_TARGET_DIR", new StringGetter() {
public String get() {
return meta.errorHandling.warningFilesDestinationDirectory;
}
} );
check( "WARNING_FILES_EXTENTION", new StringGetter() {
public String get() {
return meta.errorHandling.warningFilesExtension;
}
} );
check( "ERROR_FILES_TARGET_DIR", new StringGetter() {
public String get() {
return meta.errorHandling.errorFilesDestinationDirectory;
}
} );
check( "ERROR_FILES_EXTENTION", new StringGetter() {
public String get() {
return meta.errorHandling.errorFilesExtension;
}
} );
check( "LINE_NR_FILES_TARGET_DIR", new StringGetter() {
public String get() {
return meta.errorHandling.lineNumberFilesDestinationDirectory;
}
} );
check( "LINE_NR_FILES_EXTENTION", new StringGetter() {
public String get() {
return meta.errorHandling.lineNumberFilesExtension;
}
} );
//////////////////////
check( "FILE_SHORT_FILE_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.shortFilenameField;
}
} );
check( "FILE_EXTENSION_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.extensionField;
}
} );
check( "FILE_PATH_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.pathField;
}
} );
check( "FILE_SIZE_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.sizeField;
}
} );
check( "FILE_HIDDEN_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.hiddenField;
}
} );
check( "FILE_LAST_MODIFICATION_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.lastModificationField;
}
} );
check( "FILE_URI_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.uriField;
}
} );
check( "FILE_ROOT_URI_FIELDNAME", new StringGetter() {
public String get() {
return meta.additionalOutputFields.rootUriField;
}
} );
/////////////////
check( "ERROR_COUNT_FIELD", new StringGetter() {
public String get() {
return meta.errorCountField;
}
} );
check( "ERROR_FIELDS_FIELD", new StringGetter() {
public String get() {
return meta.errorFieldsField;
}
} );
check( "ERROR_TEXT_FIELD", new StringGetter() {
public String get() {
return meta.errorTextField;
}
} );
check( "ERROR_LINES_SKIPPED", new BooleanGetter() {
public boolean get() {
return meta.errorLineSkipped;
}
} );
}
}