FileWatcherTest.java 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package info.fetter.logstashforwarder;
  2. import static org.apache.log4j.Level.*;
  3. import java.io.File;
  4. import java.io.IOException;
  5. import org.apache.commons.io.FileUtils;
  6. import org.apache.log4j.BasicConfigurator;
  7. import org.apache.log4j.Logger;
  8. import org.apache.log4j.spi.RootLogger;
  9. import org.junit.AfterClass;
  10. import org.junit.BeforeClass;
  11. import org.junit.Test;
  12. public class FileWatcherTest {
  13. Logger logger = Logger.getLogger(FileWatcherTest.class);
  14. @BeforeClass
  15. public static void setUpBeforeClass() throws Exception {
  16. BasicConfigurator.configure();
  17. RootLogger.getRootLogger().setLevel(TRACE);
  18. }
  19. @AfterClass
  20. public static void tearDownAfterClass() throws Exception {
  21. BasicConfigurator.resetConfiguration();
  22. }
  23. //@Test
  24. public void testFileWatch() throws InterruptedException, IOException {
  25. FileWatcher watcher = new FileWatcher();
  26. watcher.addFilesToWatch("./test.txt");
  27. for(int i = 0; i < 100; i++) {
  28. Thread.sleep(1000);
  29. watcher.checkFiles();
  30. }
  31. }
  32. @Test
  33. public void testWildcardWatch() throws InterruptedException, IOException {
  34. FileWatcher watcher = new FileWatcher();
  35. watcher.addFilesToWatch("./test*.txt");
  36. File file1 = new File("test1.txt");
  37. File file2 = new File("test2.txt");
  38. File file3 = new File("test3.txt");
  39. File file4 = new File("test4.txt");
  40. File testDir = new File("test");
  41. //FileUtils.forceMkdir(new File("test"));
  42. watcher.checkFiles();
  43. Thread.sleep(100);
  44. FileUtils.write(file1, "file 1 line 1\n", true);
  45. Thread.sleep(100);
  46. watcher.checkFiles();
  47. FileUtils.write(file1, "file 1 line 2\n", true);
  48. FileUtils.write(file2, "file 2 line 1\n", true);
  49. Thread.sleep(1000);
  50. watcher.checkFiles();
  51. FileUtils.moveFileToDirectory(file1, testDir, true);
  52. FileUtils.write(file2, "file 2 line 2\n", true);
  53. FileUtils.moveFile(file2, file1);
  54. FileUtils.write(file2, "file 3 line 1\n", true);
  55. // FileUtils.touch(file3);
  56. // FileUtils.forceDelete(file1);
  57. // FileUtils.forceDelete(file2);
  58. Thread.sleep(1000);
  59. watcher.checkFiles();
  60. watcher.close();
  61. FileUtils.forceDelete(file1);
  62. FileUtils.forceDelete(file2);
  63. FileUtils.forceDelete(testDir);
  64. // FileUtils.moveFile(file3, file4);
  65. // FileUtils.touch(file3);
  66. // Thread.sleep(500);
  67. // watcher.checkFiles();
  68. // FileUtils.forceDelete(file3);
  69. // FileUtils.forceDelete(file4);
  70. }
  71. }