public SalesforceInputMeta() {
    super(); // allocate BaseStepMeta
  }
@Test
  public void testSalesforceInputMeta() throws KettleException {
    List<String> attributes = new ArrayList<String>();
    attributes.addAll( SalesforceMetaTest.getDefaultAttributes() );
    attributes.addAll( Arrays.asList( "inputFields", "condition", "query", "specifyQuery", "includeTargetURL",
      "targetURLField", "includeModule", "moduleField", "includeRowNumber", "includeDeletionDate", "deletionDateField",
      "rowNumberField", "includeSQL", "sqlField", "includeTimestamp", "timestampField", "readFrom", "readTo",
      "recordsFilter", "queryAll", "rowLimit" ) );
    Map<String, String> getterMap = new HashMap<String, String>();
    Map<String, String> setterMap = new HashMap<String, String>();

    getterMap.put( "includeTargetURL", "includeTargetURL" );
    getterMap.put( "includeModule", "includeModule" );
    getterMap.put( "includeRowNumber", "includeRowNumber" );
    getterMap.put( "includeDeletionDate", "includeDeletionDate" );
    getterMap.put( "includeSQL", "includeSQL" );
    getterMap.put( "sqlField", "getSQLField" );
    setterMap.put( "sqlField", "setSQLField" );
    getterMap.put( "includeTimestamp", "includeTimestamp" );


    Map<String, FieldLoadSaveValidator<?>> fieldLoadSaveValidators = new HashMap<String, FieldLoadSaveValidator<?>>();
    fieldLoadSaveValidators.put( "inputFields",
      new ArrayLoadSaveValidator<SalesforceInputField>( new SalesforceInputFieldLoadSaveValidator(), 50 ) );
    fieldLoadSaveValidators.put( "recordsFilter", new RecordsFilterLoadSaveValidator() );

    LoadSaveTester loadSaveTester =
      new LoadSaveTester( SalesforceInputMeta.class, attributes, getterMap, setterMap,
        fieldLoadSaveValidators, new HashMap<String, FieldLoadSaveValidator<?>>() );

    loadSaveTester.testRepoRoundTrip();
    loadSaveTester.testXmlRoundTrip();
  }