// Path: cfr-core/src/pt/webdetails/cfr/file/CfrFile.java
// public class CfrFile implements IFile {
// 
//   private File file;
// 
//   private String fileName;
// 
//   private byte[] content;
// 
//   private String downloadPath;
// 
//   public CfrFile( String fileName, String downloadPath, byte[] content ) {
//     this.fileName = fileName;
//     this.downloadPath = downloadPath;
//     this.content = content;
//   }
// 
//   public CfrFile( String fileName, String downloadPath, File file ) {
//     this.fileName = fileName;
//     this.downloadPath = downloadPath;
//     this.file = file;
//   }
// 
//   /**
//    * @return the fileName
//    */
//   public String getFileName() {
//     return fileName;
//   }
// 
//   /**
//    * @return the content
//    */
//   public byte[] getContent() {
//     if ( content == null && file != null ) {
//       if ( file.isFile() ) {
//         content = new byte[(int) file.length()];
//         try {
//           DataInputStream dis = new DataInputStream( new FileInputStream( file ) );
//           dis.readFully( content );
//           dis.close();
//         } catch ( FileNotFoundException e ) {
//           // TODO Auto-generated catch block
//           e.printStackTrace();
//         } catch ( IOException e ) {
//           // TODO Auto-generated catch block
//           e.printStackTrace();
//         }
//       }
//     }
// 
//     return content;
//   }
// 
//   /**
//    * @return the downloadPath
//    */
//   public String getDownloadPath() {
//     return downloadPath;
//   }
// 
//   @Override
//   public String getFullPath() {
//     return downloadPath + File.pathSeparator + fileName;
//   }
// 
//   @Override
//   public String getName() {
//     return fileName;
//   }
// 
//   @Override
//   public boolean isDirectory() {
//     if ( file != null ) {
//       return file.isDirectory();
//     }
//     return false;
//   }
// 
//   @Override
//   public boolean isFile() {
//     if ( file != null ) {
//       return file.isFile();
//     }
//     return true;
//   }
// 
// }
// 
// Path: cfr-core/src/pt/webdetails/cfr/file/IFile.java
// public interface IFile {
//   public String getFullPath();
// 
//   public String getName();
// 
//   public boolean isDirectory();
// 
//   public boolean isFile();
// }


import java.io.File;
import java.util.List;
import junit.framework.Assert;
import org.junit.AfterClass;
import org.junit.Test;
import pt.webdetails.cfr.file.CfrFile;
import pt.webdetails.cfr.file.IFile;
    f = new File( "." + File.separator + "tests" + File.separator + "list_tests/anotherLevel" );
    if ( f.exists() ) {
      File[] files = f.listFiles();
      for ( File fi : files ) {
        fi.delete();
      }
      f.delete();
      f = f.getParentFile();
      files = f.listFiles();
      for ( File fi : files ) {
        fi.delete();
      }
      f.delete();

    }

  }

  @Test
  public void testFolderCreation() {
    DefaultFileRepositoryForTests fileRep = new DefaultFileRepositoryForTests();

    Assert.assertTrue( fileRep.createFolder( "my_tests/created_folder" ) );

    // Second create should return true - nothing to do
    Assert.assertTrue( fileRep.createFolder( "my_tests/created_folder" ) );
  }

  @Test
  public void testFileDeletion() {
// Path: cfr-core/src/pt/webdetails/cfr/file/CfrFile.java
// public class CfrFile implements IFile {
// 
//   private File file;
// 
//   private String fileName;
// 
//   private byte[] content;
// 
//   private String downloadPath;
// 
//   public CfrFile( String fileName, String downloadPath, byte[] content ) {
//     this.fileName = fileName;
//     this.downloadPath = downloadPath;
//     this.content = content;
//   }
// 
//   public CfrFile( String fileName, String downloadPath, File file ) {
//     this.fileName = fileName;
//     this.downloadPath = downloadPath;
//     this.file = file;
//   }
// 
//   /**
//    * @return the fileName
//    */
//   public String getFileName() {
//     return fileName;
//   }
// 
//   /**
//    * @return the content
//    */
//   public byte[] getContent() {
//     if ( content == null && file != null ) {
//       if ( file.isFile() ) {
//         content = new byte[(int) file.length()];
//         try {
//           DataInputStream dis = new DataInputStream( new FileInputStream( file ) );
//           dis.readFully( content );
//           dis.close();
//         } catch ( FileNotFoundException e ) {
//           // TODO Auto-generated catch block
//           e.printStackTrace();
//         } catch ( IOException e ) {
//           // TODO Auto-generated catch block
//           e.printStackTrace();
//         }
//       }
//     }
// 
//     return content;
//   }
// 
//   /**
//    * @return the downloadPath
//    */
//   public String getDownloadPath() {
//     return downloadPath;
//   }
// 
//   @Override
//   public String getFullPath() {
//     return downloadPath + File.pathSeparator + fileName;
//   }
// 
//   @Override
//   public String getName() {
//     return fileName;
//   }
// 
//   @Override
//   public boolean isDirectory() {
//     if ( file != null ) {
//       return file.isDirectory();
//     }
//     return false;
//   }
// 
//   @Override
//   public boolean isFile() {
//     if ( file != null ) {
//       return file.isFile();
//     }
//     return true;
//   }
// 
// }
// 
// Path: cfr-core/src/pt/webdetails/cfr/file/IFile.java
// public interface IFile {
//   public String getFullPath();
// 
//   public String getName();
// 
//   public boolean isDirectory();
// 
//   public boolean isFile();
// }


// Path: cfr-pentaho-base/test-src/pt/webdetails/cfr/repository/DefaultFileRepositoryTest.java
import java.io.File;
import java.util.List;
import junit.framework.Assert;
import org.junit.AfterClass;
import org.junit.Test;
import pt.webdetails.cfr.file.CfrFile;
import pt.webdetails.cfr.file.IFile;

    f = new File( "." + File.separator + "tests" + File.separator + "list_tests/anotherLevel" );
    if ( f.exists() ) {
      File[] files = f.listFiles();
      for ( File fi : files ) {
        fi.delete();
      }
      f.delete();
      f = f.getParentFile();
      files = f.listFiles();
      for ( File fi : files ) {
        fi.delete();
      }
      f.delete();

    }

  }

  @Test
  public void testFolderCreation() {
    DefaultFileRepositoryForTests fileRep = new DefaultFileRepositoryForTests();

    Assert.assertTrue( fileRep.createFolder( "my_tests/created_folder" ) );

    // Second create should return true - nothing to do
    Assert.assertTrue( fileRep.createFolder( "my_tests/created_folder" ) );
  }

  @Test
  public void testFileDeletion() {
    DefaultFileRepositoryForTests fileRep = new DefaultFileRepositoryForTests();