### Question:
KettleAnalyzerUtil { public static String normalizeFilePath( String filePath ) throws MetaverseException { try { String path = filePath; FileObject fo = KettleVFS.getFileObject( filePath ); try { path = fo.getURL().getPath(); } catch ( Throwable t ) { } File f = new File( path ); return f.getAbsolutePath(); } catch ( Exception e ) { throw new MetaverseException( e ); } }  static String normalizeFilePath( String filePath ); static String normalizeFilePathSafely( String filePath ); static Collection<IExternalResourceInfo> getResourcesFromMeta(
    final BaseStepMeta meta, final String[] filePaths ); static Collection<IExternalResourceInfo> getResourcesFromRow(
    BaseFileInputStep step, RowMetaInterface rowMeta, Object[] row ); static TransMeta getSubTransMeta( final ISubTransAwareMeta meta ); static String getSubTransMetaPath( final ISubTransAwareMeta meta, final TransMeta subTransMeta ); static TransMeta getSubTransMeta( final String filePath ); static IDocument buildDocument( final IMetaverseBuilder builder, final AbstractMeta meta,
                                         final String id, final INamespace namespace ); static String getFilename( TransMeta transMeta ); static String getFilename( JobMeta jobMeta ); static IMetaverseNode analyze( final StepAnalyzer analyzer, final TransMeta transMeta,
                                        final ISubTransAwareMeta meta,
                                        final IMetaverseNode rootNode ); static boolean consolidateSubGraphs();  }### Answer:
@Test public void testNormalizeFilePath() throws Exception { String input; String expected; try { File f = File.createTempFile( "This is a text file", ".txt" ); input = f.getAbsolutePath(); expected = f.getAbsolutePath(); } catch ( IOException ioe ) { FileObject f = KettleVFS.createTempFile( "This is a text file", ".txt", "ram: input = f.getName().getPath(); expected = f.getName().getPath(); } String result = KettleAnalyzerUtil.normalizeFilePath( input ); assertEquals( expected, result ); }