/*! ******************************************************************************
*
* 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.jsoninput;
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 JsonInputMetaInjectionTest extends BaseMetadataInjectionTest<JsonInputMeta> {
@Before
public void setup() {
setup( new JsonInputMeta() );
}
@Test
public void test() throws Exception {
check( "FILE_NAME_OUTPUT", new BooleanGetter() {
public boolean get() {
return meta.includeFilename();
}
} );
check( "FILE_NAME_FIELDNAME", new StringGetter() {
public String get() {
return meta.getFilenameField();
}
} );
check( "ROW_NUMBER_OUTPUT", new BooleanGetter() {
public boolean get() {
return meta.includeRowNumber();
}
} );
check( "ROW_NUMBER_FIELDNAME", new StringGetter() {
public String get() {
return meta.getRowNumberField();
}
} );
check( "ROW_LIMIT", new LongGetter() {
public long get() {
return meta.getRowLimit();
}
} );
check( "ADD_RESULT_FILE", new BooleanGetter() {
public boolean get() {
return meta.addResultFile();
}
} );
check( "IGNORE_EMPTY_FILE", new BooleanGetter() {
public boolean get() {
return meta.isIgnoreEmptyFile();
}
} );
check( "DO_NOT_FAIL_IF_NO_FILE", new BooleanGetter() {
public boolean get() {
return meta.isDoNotFailIfNoFile();
}
} );
check( "IGNORE_MISSING_PATH", new BooleanGetter() {
public boolean get() {
return meta.isIgnoreMissingPath();
}
} );
check( "READ_SOURCE_AS_URL", new BooleanGetter() {
public boolean get() {
return meta.isReadUrl();
}
} );
check( "REMOVE_SOURCE_FIELDS", new BooleanGetter() {
public boolean get() {
return meta.isRemoveSourceField();
}
} );
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( "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( "FIELD_NAME", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getName();
}
} );
check( "FIELD_PATH", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getPath();
}
} );
check( "FIELD_LENGTH", new IntGetter() {
public int get() {
return meta.inputFiles.inputFields[0].getLength();
}
} );
check( "FIELD_FORMAT", new StringGetter() {
public String get() {
return meta.inputFiles.inputFields[0].getFormat();
}
} );
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( "SOURCE_FIELD_NAME", new StringGetter() {
public String get() {
return meta.getFieldValue();
}
} );
check( "SOURCE_IN_FIELD", new BooleanGetter() {
public boolean get() {
return meta.isInFields();
}
} );
check( "SOURCE_FIELD_IS_FILENAME", new BooleanGetter() {
public boolean get() {
return meta.getIsAFile();
}
} );
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" );
skipPropertyTest( "FIELD_TYPE" );
}
}