/tst/org/diffkit/util/tst/TestFileUtil.groovy

http://diffkit.googlecode.com/ · Groovy · 104 lines · 65 code · 18 blank · 21 comment · 5 complexity · ed7d0deb505608b508adfe362c07ec70 MD5 · raw file

  1. /**
  2. * Copyright 2010-2011 Joseph Panico
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.diffkit.util.tst
  17. import java.io.File;
  18. import org.apache.commons.io.FileUtils
  19. import org.apache.commons.io.filefilter.SuffixFileFilter
  20. import org.diffkit.util.DKFileUtil
  21. import org.diffkit.util.DKResourceUtil
  22. /**
  23. * @author jpanico
  24. */
  25. public class TestFileUtil extends GroovyTestCase {
  26. /**
  27. * does it work from relative paths, or just absolute?
  28. */
  29. public void testCanRead() {
  30. assert DKFileUtil.canReadFilePaths((String[]) ['conf/logback.xml'])
  31. }
  32. public void testPrepend() {
  33. File sourceTarget = DKResourceUtil.findResourceAsFile("org/diffkit/util/tst/prepend_target.txt")
  34. assert sourceTarget
  35. File testTarget = ['./prependTest.tst']
  36. FileUtils.copyFile( sourceTarget, testTarget)
  37. def prependString = 'prepend\nprepend\nprepend\n---\n'
  38. DKFileUtil.prepend( prependString, testTarget)
  39. def sourceText = FileUtils.readFileToString(sourceTarget)
  40. def prependedText = FileUtils.readFileToString(testTarget)
  41. assert prependedText == prependString + sourceText
  42. }
  43. public void testCopyWithSubstitution() {
  44. File sourceFile = DKResourceUtil.findResourceAsFile("org/diffkit/util/tst/copyWithSubstitution_target.txt")
  45. assert sourceFile
  46. File copiedFile = ['./copyWithSubstitutionTest.tst']
  47. def substitutions = ['Beware':'swear', 'frumious':'frumpy']
  48. DKFileUtil.copyFile( sourceFile, copiedFile, substitutions)
  49. File expectedFile = DKResourceUtil.findResourceAsFile("org/diffkit/util/tst/copyWithSubstitution_expected.txt")
  50. def expectedText = FileUtils.readFileToString(expectedFile)
  51. def copiedText = FileUtils.readFileToString(copiedFile)
  52. assert copiedText == expectedText
  53. }
  54. public void testCopyDirectory() {
  55. File sourceFile = DKResourceUtil.findResourceAsFile("org/diffkit/util/tst/copyWithSubstitution_target.txt")
  56. assert sourceFile
  57. File sourceDirectory = sourceFile.getParentFile()
  58. assert sourceDirectory
  59. assert sourceDirectory.isDirectory()
  60. FilenameFilter filenameFilter= new SuffixFileFilter(".txt")
  61. File[] sourceFiles = sourceDirectory.listFiles((FilenameFilter)filenameFilter)
  62. assert sourceFiles
  63. assert sourceFiles.length == 3
  64. File destDir = ['./']
  65. def substitutions = ['Beware':'swear', 'frumious':'frumpy']
  66. DKFileUtil.copyDirectory( sourceDirectory, destDir, filenameFilter,substitutions)
  67. File[] destFiles = destDir.listFiles((FilenameFilter)filenameFilter)
  68. assert destFiles
  69. assert destFiles.length == 3
  70. File expectedFile = DKResourceUtil.findResourceAsFile("org/diffkit/util/tst/copyWithSubstitution_expected.txt")
  71. def expectedText = FileUtils.readFileToString(expectedFile)
  72. def copiedFile = new File(destDir, sourceFile.name )
  73. def copiedText = FileUtils.readFileToString(copiedFile)
  74. assert copiedText == expectedText
  75. }
  76. public void testIsRelative(){
  77. println "separtor->${File.separator}"
  78. println "path->${new File('./')}"
  79. assert DKFileUtil.isRelative(new File("."))
  80. assert ! DKFileUtil.isRelative(new File(""))
  81. assert DKFileUtil.isRelative(new File('./'))
  82. assert DKFileUtil.isRelative(new File("./test/"))
  83. assert DKFileUtil.isRelative(new File(".\\"))
  84. assert ! DKFileUtil.isRelative(new File("/Users/joe/tmp"))
  85. }
  86. }