- private static final String REGEX = "^.*\\.txt$";
- private static final String FILE1 = "file1.txt";
-
- private TestData _data;
- private DirectoryMonitor.Listener _listener;
- private DirectoryMonitor _monitor;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- _data = new TestData(this);
- _data.clean();
- _listener = EasyMock.createStrictMock(DirectoryMonitor.Listener.class);
- _monitor = new DirectoryMonitor(_data.getRoot(), new AwkFilenameFilter(
- REGEX), _listener);
- }
-
- public void testEmptyDir() {
- // Nothing is expected to be called.
- for (int i = 0; i < 10; i++) {
- EasyMock.replay(_listener);
- _monitor.poll();
- EasyMock.verify(_listener);
- EasyMock.reset(_listener);
- }
- }
-
- public void testFileCreated() {
- _listener.fileCreated(_data.getFile(FILE1));
- EasyMock.replay(_listener);
- _data.createFile(FILE1, "hello");
- _monitor.poll();
- EasyMock.verify(_listener);
- }
-
- public void testFileDeleted() {
- _data.createFile(FILE1, "hello");
- _monitor.poll();
-
- EasyMock.reset(_listener);
-
- _data.deleteFile(FILE1);
- _listener.fileDeleted(_data.getFile(FILE1));
- EasyMock.replay(_listener);
- _monitor.poll();
- EasyMock.verify(_listener);
- }
-
- public void testFileChanged() throws InterruptedException {
- _data.createFile(FILE1, "hello");
- _monitor.poll();
- EasyMock.reset(_listener);
-
- Thread.sleep(2000);
- _data.deleteFile(FILE1);
- _data.createFile(FILE1, "bla");
-
- _listener.fileChanged(_data.getFile(FILE1));
- EasyMock.replay(_listener);
- _monitor.poll();
- EasyMock.verify(_listener);
- }
-
- public void testFileFilterIsUsed() {
- _monitor.poll();
-
- _data.createFile("file.xml", "hello");
- EasyMock.replay(_listener);
- _monitor.poll();
- EasyMock.verify(_listener);
- }
-
- public void testDirectoryIsIgnored() {
- _monitor.poll();
- _data.createDir(FILE1);
- EasyMock.replay(_listener);
- _monitor.poll();
- EasyMock.verify(_listener);
- }
-
- public void testExceptionsWIllLeadToRepeatedNotifications() {
- _monitor.poll();
- _data.createFile(FILE1, "hello");
-
- _listener.fileCreated(_data.getFile(FILE1));
- EasyMock.expectLastCall().andThrow(new RuntimeException());
- EasyMock.replay(_listener);
- try {
- _monitor.poll();
- } catch (RuntimeException e) {
- EasyMock.verify(_listener);
- EasyMock.reset(_listener);
-
- // polling again should lead to the same filecreated call.
- // this time no exception is thrown.
-
- _listener.fileCreated(_data.getFile(FILE1));
- EasyMock.replay(_listener);
- _monitor.poll();
- EasyMock.verify(_listener);
- return;
- }
- fail(); // should not get here.
-
-
- }