### Question:
KettleAnalyzerUtil { public static String normalizeFilePathSafely( String filePath ) { try { return normalizeFilePath( filePath ); } catch ( final MetaverseException e ) { log.error( e.getMessage() ); } return filePath; }  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 testNormalizeFilePathSafely() throws Exception { final String path = "temp/foo"; assertNotEquals( "temp/foo", KettleAnalyzerUtil.normalizeFilePathSafely( path ) ); assertTrue( KettleAnalyzerUtil.normalizeFilePathSafely( path ).endsWith( "temp" + File.separator + "foo" ) ); PowerMockito.mockStatic( KettleVFS.class ); Mockito.when( KettleVFS.getFileObject( path ) ).thenThrow( new KettleFileException( "mockedException" ) ); assertEquals( "temp/foo", KettleAnalyzerUtil.normalizeFilePathSafely( path ) ); }