public ValueMetaInterface getValueMetaFor( int resultType, String name ) throws KettlePluginException {
    // don't need any synchronization as data instance belongs only to one step instance
    ValueMetaInterface meta = resultMetaMapping.get( resultType );
    if ( meta == null ) {
      meta = ValueMetaFactory.createValueMeta( name, resultType );
      resultMetaMapping.put( resultType, meta );
    }
    return meta;
  }
@Test
  public void dataReturnsCachedValues() throws Exception {
    KettleEnvironment.init( false );

    CalculatorData data = new CalculatorData();
    ValueMetaInterface valueMeta = data.getValueMetaFor( ValueMetaInterface.TYPE_INTEGER, null );
    ValueMetaInterface shouldBeTheSame = data.getValueMetaFor( ValueMetaInterface.TYPE_INTEGER, null );
    assertTrue( "CalculatorData should cache loaded value meta instances", valueMeta == shouldBeTheSame );
  }