100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair/* 200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Copyright 2008 the original author or authors. 300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * you may not use this file except in compliance with the License. 600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * You may obtain a copy of the License at 700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * http://www.apache.org/licenses/LICENSE-2.0 900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 1000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Unless required by applicable law or agreed to in writing, software 1100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * distributed under the License is distributed on an "AS IS" BASIS, 1200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * See the License for the specific language governing permissions and 1400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * limitations under the License. 1500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 1600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairpackage org.mockftpserver.fake.filesystem 1700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 1800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair/** 1900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * Test-only subclass of UnixFakeFileSystem. Groovy implementation enables access to metaclass. 2000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 2100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @version $Revision$ - $Date$ 2200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * 2300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair * @author Chris Mair 2400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair */ 2500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismairclass TestUnixFakeFileSystem extends UnixFakeFileSystem { 2600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 2700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair Throwable addMethodException 2800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair Throwable renameMethodException 2900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair Throwable listNamesMethodException 3000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair Throwable listFilesMethodException 3100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair Throwable deleteMethodException 3200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 3300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void add(FileSystemEntry entry) { 3400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair if (addMethodException) { 3500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair throw addMethodException 3600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 3700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair super.add(entry) 3800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 3900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 4000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair void rename(String fromPath, String toPath) { 4100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair if (renameMethodException) { 4200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair throw renameMethodException 4300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 4400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair super.rename(fromPath, toPath) 4500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 4600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 4700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair List listNames(String path) { 4800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair if (listNamesMethodException) { 4900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair throw listNamesMethodException 5000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 5100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair super.listNames(path) 5200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 5300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 5400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair List listFiles(String path) { 5500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair if (listFilesMethodException) { 5600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair throw listFilesMethodException 5700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 5800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair super.listFiles(path) 5900dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 6000dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 6100dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair boolean delete(String path) { 6200dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair if (deleteMethodException) { 6300dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair throw deleteMethodException 6400dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 6500dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair super.delete(path) 6600dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair } 6700dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair 6800dc7bdcf1df9e86789d963984dfc6912a8854c6chrismair}