### Question:
ValueMetaFactory { public static List<IValueMeta> getValueMetaPluginClasses() throws HopPluginException { List<IValueMeta> list = new ArrayList<>(); List<IPlugin> plugins = pluginRegistry.getPlugins( ValueMetaPluginType.class ); for ( IPlugin plugin : plugins ) { IValueMeta iValueMeta = (IValueMeta) pluginRegistry.loadClass( plugin ); list.add( iValueMeta ); } return list; } private  ValueMetaFactory(); static IValueMeta createValueMeta( String name, int type, int length, int precision ); static IValueMeta createValueMeta( String name, int type ); static IValueMeta createValueMeta( int type ); static IValueMeta cloneValueMeta( IValueMeta source ); static IValueMeta cloneValueMeta( IValueMeta source, int targetType ); static void cloneInfo( IValueMeta source, IValueMeta target ); static String[] getValueMetaNames(); static String[] getAllValueMetaNames(); static String getValueMetaName( int type ); static int getIdForValueMeta( String valueMetaName ); static List<IValueMeta> getValueMetaPluginClasses(); static IValueMeta guessValueMetaInterface( Object object ); static PluginRegistry pluginRegistry; }### Answer:
@Test public void testGetValueMetaPluginClasses() throws HopPluginException { List<IValueMeta> dataTypes = ValueMetaFactory.getValueMetaPluginClasses(); boolean numberExists = false; boolean stringExists = false; boolean dateExists = false; boolean booleanExists = false; boolean integerExists = false; boolean bignumberExists = false; boolean serializableExists = false; boolean binaryExists = false; boolean timestampExists = false; boolean inetExists = false; for ( IValueMeta obj : dataTypes ) { if ( obj instanceof ValueMetaNumber ) { numberExists = true; } if ( obj.getClass().equals( ValueMetaString.class ) ) { stringExists = true; } if ( obj.getClass().equals( ValueMetaDate.class ) ) { dateExists = true; } if ( obj.getClass().equals( ValueMetaBoolean.class ) ) { booleanExists = true; } if ( obj.getClass().equals( ValueMetaInteger.class ) ) { integerExists = true; } if ( obj.getClass().equals( ValueMetaBigNumber.class ) ) { bignumberExists = true; } if ( obj.getClass().equals( ValueMetaSerializable.class ) ) { serializableExists = true; } if ( obj.getClass().equals( ValueMetaBinary.class ) ) { binaryExists = true; } if ( obj.getClass().equals( ValueMetaTimestamp.class ) ) { timestampExists = true; } if ( obj.getClass().equals( ValueMetaInternetAddress.class ) ) { inetExists = true; } } assertTrue( numberExists ); assertTrue( stringExists ); assertTrue( dateExists ); assertTrue( booleanExists ); assertTrue( integerExists ); assertTrue( bignumberExists ); assertTrue( serializableExists ); assertTrue( binaryExists ); assertTrue( timestampExists ); assertTrue( inetExists ); }