added a testcase specifically for the modification time.
[utils] / support / general / src / test / java / org / wamblee / io / DirectoryMonitorTest.java
index e1437dcdc2a6c33f8cbaaf0e6924742fa28039df..1bb4d02017d902bec371a05e13fce0ca87dcf5bc 100644 (file)
@@ -1,12 +1,12 @@
 /*
- * Copyright 2007 the original author or authors.
- *
+ * Copyright 2005-2010 the original author or authors.
+ * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- *
+ * 
  *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  */
 package org.wamblee.io;
 
-import junit.framework.TestCase;
-
-import org.apache.oro.io.AwkFilenameFilter;
 import static org.mockito.Mockito.*;
+import junit.framework.TestCase;
 
 public class DirectoryMonitorTest extends TestCase {
     private static final String REGEX = "^.*\\.txt$";
@@ -33,7 +31,7 @@ public class DirectoryMonitorTest extends TestCase {
         data = new TestData(this);
         data.clean();
         listener = mock(DirectoryMonitor.Listener.class);
-        monitor = new DirectoryMonitor(data.getRoot(), new AwkFilenameFilter(
+        monitor = new DirectoryMonitor(data.getRoot(), new RegexFilenameFilter(
             REGEX), listener);
     }
 
@@ -77,6 +75,19 @@ public class DirectoryMonitorTest extends TestCase {
         verifyNoMoreInteractions(listener);
     }
 
+    public void testFileModificationTimeChanged() throws InterruptedException {
+        data.createFile(FILE1, "hello");
+        monitor.poll();
+        reset(listener);
+        data.deleteFile(FILE1);
+        Thread.sleep(2000);
+        data.createFile(FILE1, "hello");
+
+        monitor.poll();
+        verify(listener).fileChanged(data.getFile(FILE1));
+        verifyNoMoreInteractions(listener);
+    }
+
     public void testFileFilterIsUsed() {
         monitor.poll();
 
@@ -96,8 +107,8 @@ public class DirectoryMonitorTest extends TestCase {
         monitor.poll();
         data.createFile(FILE1, "hello");
 
-        stubVoid(listener).toThrow(new RuntimeException()).on().fileCreated(
-            data.getFile(FILE1));
+        stubVoid(listener).toThrow(new RuntimeException()).on()
+            .fileCreated(data.getFile(FILE1));
 
         try {
             monitor.poll();