X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=support%2Fgeneral%2Fsrc%2Ftest%2Fjava%2Forg%2Fwamblee%2Fio%2FDirectoryMonitorTest.java;h=347857da528b1ef04905ab2a630c1c3f122cb5c3;hb=8557fbe8c7ea4e1cbcbf10d3c4e8c60c9c1e312b;hp=b778adac1432604fd0208d07d61bd56f063fe5e2;hpb=32a62ca2c752e33a7873ac868a7a1f289caedcd4;p=utils diff --git a/support/general/src/test/java/org/wamblee/io/DirectoryMonitorTest.java b/support/general/src/test/java/org/wamblee/io/DirectoryMonitorTest.java index b778adac..347857da 100644 --- a/support/general/src/test/java/org/wamblee/io/DirectoryMonitorTest.java +++ b/support/general/src/test/java/org/wamblee/io/DirectoryMonitorTest.java @@ -1,17 +1,34 @@ +/* + * 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 _listener; + private DirectoryMonitor _monitor; @Override @@ -19,97 +36,88 @@ public class DirectoryMonitorTest extends TestCase { super.setUp(); _data = new TestData(this); _data.clean(); - _listener = EasyMock.createStrictMock(DirectoryMonitor.Listener.class); + _listener = new ResettableMock( + 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. }