/*! ****************************************************************************** * * Pentaho Data Integration * * Copyright (C) 2002-2016 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.textfileoutput; 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 TextFileOutputMetaInjectionTest extends BaseMetadataInjectionTest<TextFileOutputMeta> { @Before public void setup() { setup( new TextFileOutputMeta() ); } @Test public void test() throws Exception { check( "FILENAME", new StringGetter() { public String get() { return meta.getFileName(); } } ); check( "RUN_AS_COMMAND", new BooleanGetter() { public boolean get() { return meta.isFileAsCommand(); } } ); check( "PASS_TO_SERVLET", new BooleanGetter() { public boolean get() { return meta.isServletOutput(); } } ); check( "CREATE_PARENT_FOLDER", new BooleanGetter() { public boolean get() { return meta.isCreateParentFolder(); } } ); check( "EXTENSION", new StringGetter() { public String get() { return meta.getExtension(); } } ); check( "SEPARATOR", new StringGetter() { public String get() { return meta.getSeparator(); } } ); check( "ENCLOSURE", new StringGetter() { public String get() { return meta.getEnclosure(); } } ); check( "FORCE_ENCLOSURE", new BooleanGetter() { public boolean get() { return meta.isEnclosureForced(); } } ); check( "DISABLE_ENCLOSURE_FIX", new BooleanGetter() { public boolean get() { return meta.isEnclosureFixDisabled(); } } ); check( "HEADER", new BooleanGetter() { public boolean get() { return meta.isHeaderEnabled(); } } ); check( "FOOTER", new BooleanGetter() { public boolean get() { return meta.isFooterEnabled(); } } ); check( "FORMAT", new StringGetter() { public String get() { return meta.getFileFormat(); } } ); check( "COMPRESSION", new StringGetter() { public String get() { return meta.getFileCompression(); } } ); check( "SPLIT_EVERY", new IntGetter() { public int get() { return meta.getSplitEvery(); } } ); check( "APPEND", new BooleanGetter() { public boolean get() { return meta.isFileAppended(); } } ); check( "INC_STEPNR_IN_FILENAME", new BooleanGetter() { public boolean get() { return meta.isStepNrInFilename(); } } ); check( "INC_PARTNR_IN_FILENAME", new BooleanGetter() { public boolean get() { return meta.isPartNrInFilename(); } } ); check( "INC_DATE_IN_FILENAME", new BooleanGetter() { public boolean get() { return meta.isDateInFilename(); } } ); check( "INC_TIME_IN_FILENAME", new BooleanGetter() { public boolean get() { return meta.isTimeInFilename(); } } ); check( "RIGHT_PAD_FIELDS", new BooleanGetter() { public boolean get() { return meta.isPadded(); } } ); check( "FAST_DATA_DUMP", new BooleanGetter() { public boolean get() { return meta.isFastDump(); } } ); check( "ENCODING", new StringGetter() { public String get() { return meta.getEncoding(); } } ); check( "ADD_ENDING_LINE", new StringGetter() { public String get() { return meta.getEndedLine(); } } ); check( "FILENAME_IN_FIELD", new BooleanGetter() { public boolean get() { return meta.isFileNameInField(); } } ); check( "FILENAME_FIELD", new StringGetter() { public String get() { return meta.getFileNameField(); } } ); check( "NEW_LINE", new StringGetter() { public String get() { return meta.getNewline(); } } ); check( "ADD_TO_RESULT", new BooleanGetter() { public boolean get() { return meta.isAddToResultFiles(); } } ); check( "DO_NOT_CREATE_FILE_AT_STARTUP", new BooleanGetter() { public boolean get() { return meta.isDoNotOpenNewFileInit(); } } ); check( "SPECIFY_DATE_FORMAT", new BooleanGetter() { public boolean get() { return meta.isSpecifyingFormat(); } } ); check( "DATE_FORMAT", new StringGetter() { public String get() { return meta.getDateTimeFormat(); } } ); ///////////////////////////// check( "OUTPUT_FIELDNAME", new StringGetter() { public String get() { return meta.getOutputFields()[0].getName(); } } ); // TODO check field type plugins skipPropertyTest( "OUTPUT_TYPE" ); check( "OUTPUT_FORMAT", new StringGetter() { public String get() { return meta.getOutputFields()[0].getFormat(); } } ); check( "OUTPUT_LENGTH", new IntGetter() { public int get() { return meta.getOutputFields()[0].getLength(); } } ); check( "OUTPUT_PRECISION", new IntGetter() { public int get() { return meta.getOutputFields()[0].getPrecision(); } } ); check( "OUTPUT_CURRENCY", new StringGetter() { public String get() { return meta.getOutputFields()[0].getCurrencySymbol(); } } ); check( "OUTPUT_DECIMAL", new StringGetter() { public String get() { return meta.getOutputFields()[0].getDecimalSymbol(); } } ); check( "OUTPUT_GROUP", new StringGetter() { public String get() { return meta.getOutputFields()[0].getGroupingSymbol(); } } ); check( "OUTPUT_NULL", new StringGetter() { public String get() { return meta.getOutputFields()[0].getNullString(); } } ); ValueMetaInterface mftt = new ValueMetaString( "f" ); injector.setProperty( meta, "OUTPUT_TRIM", setValue( mftt, "left" ), "f" ); assertEquals( 1, meta.getOutputFields()[0].getTrimType() ); injector.setProperty( meta, "OUTPUT_TRIM", setValue( mftt, "right" ), "f" ); assertEquals( 2, meta.getOutputFields()[0].getTrimType() ); skipPropertyTest( "OUTPUT_TRIM" ); } }