public Object normalizeValue( ValueMetaInterface valueMeta, Object value ) throws KettleValueException {
    if ( valueMeta.isDate() ) {
      // Pass date field converted to UTC, see PDI-10836
      Calendar cal = Calendar.getInstance( valueMeta.getDateFormatTimeZone() );
      cal.setTime( valueMeta.getDate( value ) );
      Calendar utc = Calendar.getInstance( TimeZone.getTimeZone( "UTC" ) );
      // Reset time-related fields
      utc.clear();
      utc.set( cal.get( Calendar.YEAR ), cal.get( Calendar.MONTH ), cal.get( Calendar.DATE ),
        cal.get( Calendar.HOUR_OF_DAY ), cal.get( Calendar.MINUTE ), cal.get( Calendar.SECOND ) );
      value = utc;
    } else if ( valueMeta.isStorageBinaryString() ) {
      value = valueMeta.convertToNormalStorageType( value );
    }

    if ( ValueMetaInterface.TYPE_INTEGER == valueMeta.getType() ) {
      // Salesforce integer values can be only http://www.w3.org/2001/XMLSchema:int
      // see org.pentaho.di.ui.trans.steps.salesforceinput.SalesforceInputDialog#addFieldToTable
      // So we need convert Hitachi Vantara integer (real java Long value) to real int.
      // It will be sent correct as http://www.w3.org/2001/XMLSchema:int

      // use checked cast for prevent losing data
      value = Ints.checkedCast( (Long) value );
    }
    return value;
  }
@Test
  public void createIntObjectTest() throws KettleValueException {
    SalesforceStep step =
      spy( new MockSalesforceStep( smh.stepMeta, smh.stepDataInterface, 0, smh.transMeta, smh.trans ) );
    ValueMetaInterface valueMeta = Mockito.mock( ValueMetaInterface.class );
    Mockito.when( valueMeta.getType() ).thenReturn( ValueMetaInterface.TYPE_INTEGER );
    Object value = step.normalizeValue( valueMeta, 100L );
    Assert.assertTrue( value instanceof Integer );
  }