### Question:
ValueMetaFactory { public static IValueMeta cloneValueMeta( IValueMeta source ) throws HopPluginException { return cloneValueMeta( source, source.getType() ); } 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 testClone() throws HopException { IValueMeta original = new ValueMetaString(); original.setCollatorLocale( Locale.CANADA ); original.setCollatorStrength( 3 ); IValueMeta cloned = ValueMetaFactory.cloneValueMeta( original ); assertNotNull( cloned ); assertNotSame( original, cloned ); valueMetaDeepEquals( original, cloned ); }