+/*
+ * Copyright 2007 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.wamblee.io;
-import org.apache.oro.io.AwkFilenameFilter;
-import org.easymock.EasyMock;
-
+import static org.mockito.Mockito.*;
import junit.framework.TestCase;
+import org.apache.oro.io.AwkFilenameFilter;
+import org.wamblee.test.ResettableMock;
+
public class DirectoryMonitorTest extends TestCase {
private static final String REGEX = "^.*\\.txt$";
private static final String FILE1 = "file1.txt";
private TestData _data;
- private DirectoryMonitor.Listener _listener;
+ private ResettableMock<DirectoryMonitor.Listener> _listener;
+
private DirectoryMonitor _monitor;
@Override
super.setUp();
_data = new TestData(this);
_data.clean();
- _listener = EasyMock.createStrictMock(DirectoryMonitor.Listener.class);
+ _listener = new ResettableMock<DirectoryMonitor.Listener>(
+ DirectoryMonitor.Listener.class);
_monitor = new DirectoryMonitor(_data.getRoot(), new AwkFilenameFilter(
- REGEX), _listener);
+ REGEX), _listener.getProxy());
}
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);
+ verifyNoMoreInteractions(_listener.getMock());
}
}
public void testFileCreated() {
- _listener.fileCreated(_data.getFile(FILE1));
- EasyMock.replay(_listener);
_data.createFile(FILE1, "hello");
_monitor.poll();
- EasyMock.verify(_listener);
+ verify(_listener.getMock()).fileCreated(_data.getFile(FILE1));
}
public void testFileDeleted() {
_data.createFile(FILE1, "hello");
_monitor.poll();
-
- EasyMock.reset(_listener);
+ _listener.reset();
_data.deleteFile(FILE1);
- _listener.fileDeleted(_data.getFile(FILE1));
- EasyMock.replay(_listener);
_monitor.poll();
- EasyMock.verify(_listener);
+
+ verify(_listener.getMock()).fileDeleted(_data.getFile(FILE1));
+ verifyNoMoreInteractions(_listener.getMock());
}
-
- public void testFileChanged() throws InterruptedException {
+
+ public void testFileChanged() throws InterruptedException {
_data.createFile(FILE1, "hello");
_monitor.poll();
- EasyMock.reset(_listener);
-
+ _listener.reset();
+
Thread.sleep(2000);
_data.deleteFile(FILE1);
_data.createFile(FILE1, "bla");
-
- _listener.fileChanged(_data.getFile(FILE1));
- EasyMock.replay(_listener);
+
_monitor.poll();
- EasyMock.verify(_listener);
+ verify(_listener.getMock()).fileChanged(_data.getFile(FILE1));
+ verifyNoMoreInteractions(_listener.getMock());
}
-
+
public void testFileFilterIsUsed() {
- _monitor.poll();
-
+ _monitor.poll();
+
_data.createFile("file.xml", "hello");
- EasyMock.replay(_listener);
_monitor.poll();
- EasyMock.verify(_listener);
+ verifyNoMoreInteractions(_listener.getMock());
}
-
- public void testDirectoryIsIgnored() {
+
+ public void testDirectoryIsIgnored() {
_monitor.poll();
_data.createDir(FILE1);
- EasyMock.replay(_listener);
_monitor.poll();
- EasyMock.verify(_listener);
+ verifyNoMoreInteractions(_listener.getMock());
}
-
+
public void testExceptionsWIllLeadToRepeatedNotifications() {
_monitor.poll();
_data.createFile(FILE1, "hello");
- _listener.fileCreated(_data.getFile(FILE1));
- EasyMock.expectLastCall().andThrow(new RuntimeException());
- EasyMock.replay(_listener);
+ stubVoid(_listener.getMock()).toThrow(new RuntimeException()).on().
+ fileCreated(_data.getFile(FILE1));
+
try {
_monitor.poll();
} catch (RuntimeException e) {
- EasyMock.verify(_listener);
- EasyMock.reset(_listener);
+ _listener.reset();
- // polling again should lead to the same filecreated call.
- // this time no exception is thrown.
+ // 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);
+ verify(_listener.getMock()).fileCreated(_data.getFile(FILE1));
+ verifyNoMoreInteractions(_listener.getMock());
return;
}
- fail(); // should not get here.
+ fail(); // should not get here.
}