1 package org.nanocontainer.deployer; 2 3 import org.apache.commons.vfs.FileObject; 4 import org.apache.commons.vfs.FileType; 5 import org.jmock.Mock; 6 import org.jmock.MockObjectTestCase; 7 import org.nanocontainer.deployer.DifferenceAnalysingFolderContentHandler; 8 import org.nanocontainer.deployer.FolderListener; 9 10 14 public class DifferenceAnalysingFolderContentHandlerTestCase extends MockObjectTestCase { 15 public void testAddedFoldersShouldCauseFolderAddedEvent() { 16 Mock folderMock = mock(FileObject.class); 17 DifferenceAnalysingFolderContentHandler handler = new DifferenceAnalysingFolderContentHandler((FileObject) folderMock.proxy(), null); 18 19 Mock addedFolderMock = mock(FileObject.class); 20 addedFolderMock.expects(once()) 21 .method("getType") 22 .withNoArguments() 23 .will(returnValue(FileType.FOLDER)); 24 FileObject addedFolder = (FileObject) addedFolderMock.proxy(); 25 26 Mock folderListenerMock = mock(FolderListener.class); 27 folderListenerMock.expects(once()) 28 .method("folderAdded") 29 .with(same(addedFolder)); 30 handler.addFolderListener((FolderListener) folderListenerMock.proxy()); 31 32 handler.setCurrentChildren(new FileObject[]{addedFolder}); 33 } 34 35 public void testRemovedFoldersShouldCauseFolderRemovedEvent() { 36 Mock folderMock = mock(FileObject.class); 37 DifferenceAnalysingFolderContentHandler handler = new DifferenceAnalysingFolderContentHandler((FileObject) folderMock.proxy(), null); 38 39 Mock initialFolderOneMock = mock(FileObject.class); 40 initialFolderOneMock.expects(once()) 41 .method("getType") 42 .withNoArguments() 43 .will(returnValue(FileType.FOLDER)); 44 FileObject initialFolderOne = (FileObject) initialFolderOneMock.proxy(); 45 Mock initialFolderTwoMock = mock(FileObject.class); 46 initialFolderTwoMock.expects(once()) 47 .method("getType") 48 .withNoArguments() 49 .will(returnValue(FileType.FOLDER)); 50 initialFolderTwoMock.expects(once()) 51 .method("getType") 52 .withNoArguments() 53 .will(returnValue(FileType.FOLDER)); 54 FileObject initialFolderTwo = (FileObject) initialFolderTwoMock.proxy(); 55 FileObject[] initialFolders = new FileObject[] {initialFolderOne, initialFolderTwo}; 56 57 handler.setCurrentChildren(initialFolders); 58 59 FileObject[] foldersAfterRemoval = new FileObject[] {initialFolderOne}; 60 Mock folderListenerMock = mock(FolderListener.class); 61 folderListenerMock.expects(once()) 62 .method("folderRemoved") 63 .with(same(initialFolderTwo)); 64 handler.addFolderListener((FolderListener) folderListenerMock.proxy()); 65 66 handler.setCurrentChildren(foldersAfterRemoval); 67 } 68 } | Popular Tags |