/*! ****************************************************************************** * * 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.mysqlbulkloader; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; import org.pentaho.di.core.exception.KettleException; import org.pentaho.di.trans.steps.loadsave.LoadSaveTester; import org.pentaho.di.trans.steps.loadsave.validator.ArrayLoadSaveValidator; import org.pentaho.di.trans.steps.loadsave.validator.FieldLoadSaveValidator; import org.pentaho.di.trans.steps.loadsave.validator.IntLoadSaveValidator; import org.pentaho.di.trans.steps.loadsave.validator.PrimitiveIntArrayLoadSaveValidator; import org.pentaho.di.trans.steps.loadsave.validator.StringLoadSaveValidator; public class MySQLBulkLoaderMetaTest { @Test public void testRoundTrip() throws KettleException { List<String> attributes = Arrays.asList( /*"connection",*/ "schema", "table", "encoding", "delimiter", "enclosure", "escape_char", "replace", "ignore", "local", "fifo_file_name", "bulk_size", "stream_name", "field_name", "field_format_ok" ); Map<String, String> getterMap = new HashMap<String, String>(); //getterMap.put( "connection", "" ); getterMap.put( "schema", "getSchemaName" ); getterMap.put( "table", "getTableName" ); getterMap.put( "encoding", "getEncoding" ); getterMap.put( "delimiter", "getDelimiter" ); getterMap.put( "enclosure", "getEnclosure" ); getterMap.put( "escape_char", "getEscapeChar" ); getterMap.put( "replace", "isReplacingData" ); getterMap.put( "ignore", "isIgnoringErrors" ); getterMap.put( "local", "isLocalFile" ); getterMap.put( "fifo_file_name", "getFifoFileName" ); getterMap.put( "bulk_size", "getBulkSize" ); getterMap.put( "stream_name", "getFieldTable" ); getterMap.put( "field_name", "getFieldStream" ); getterMap.put( "field_format_ok", "getFieldFormatType" ); Map<String, String> setterMap = new HashMap<String, String>(); //setterMap.put( "connection", "" ); setterMap.put( "schema", "setSchemaName" ); setterMap.put( "table", "setTableName" ); setterMap.put( "encoding", "setEncoding" ); setterMap.put( "delimiter", "setDelimiter" ); setterMap.put( "enclosure", "setEnclosure" ); setterMap.put( "escape_char", "setEscapeChar" ); setterMap.put( "replace", "setReplacingData" ); setterMap.put( "ignore", "setIgnoringErrors" ); setterMap.put( "local", "setLocalFile" ); setterMap.put( "fifo_file_name", "setFifoFileName" ); setterMap.put( "bulk_size", "setBulkSize" ); setterMap.put( "stream_name", "setFieldTable" ); setterMap.put( "field_name", "setFieldStream" ); setterMap.put( "field_format_ok", "setFieldFormatType" ); Map<String, FieldLoadSaveValidator<?>> fieldLoadSaveValidatorAttributeMap = new HashMap<String, FieldLoadSaveValidator<?>>(); FieldLoadSaveValidator<String[]> stringArrayLoadSaveValidator = new ArrayLoadSaveValidator<String>( new StringLoadSaveValidator(), 25 ); FieldLoadSaveValidator<int[]> fieldFormatTypeArrayLoadSaveValidator = new PrimitiveIntArrayLoadSaveValidator( new IntLoadSaveValidator( MySQLBulkLoaderMeta.getFieldFormatTypeCodes().length ), 25 ); fieldLoadSaveValidatorAttributeMap.put( "stream_name", stringArrayLoadSaveValidator ); fieldLoadSaveValidatorAttributeMap.put( "field_name", stringArrayLoadSaveValidator ); fieldLoadSaveValidatorAttributeMap.put( "field_format_ok", fieldFormatTypeArrayLoadSaveValidator ); LoadSaveTester loadSaveTester = new LoadSaveTester( MySQLBulkLoaderMeta.class, attributes, getterMap, setterMap, fieldLoadSaveValidatorAttributeMap, new HashMap<String, FieldLoadSaveValidator<?>>() ); loadSaveTester.testSerialization(); } }