1dfb59d50631968ab1a13002ea5421ece93169851chrismair/* 2dfb59d50631968ab1a13002ea5421ece93169851chrismair * Copyright 2008 the original author or authors. 3dfb59d50631968ab1a13002ea5421ece93169851chrismair * 4dfb59d50631968ab1a13002ea5421ece93169851chrismair * Licensed under the Apache License, Version 2.0 (the "License"); 5dfb59d50631968ab1a13002ea5421ece93169851chrismair * you may not use this file except in compliance with the License. 6dfb59d50631968ab1a13002ea5421ece93169851chrismair * You may obtain a copy of the License at 7dfb59d50631968ab1a13002ea5421ece93169851chrismair * 8dfb59d50631968ab1a13002ea5421ece93169851chrismair * http://www.apache.org/licenses/LICENSE-2.0 9dfb59d50631968ab1a13002ea5421ece93169851chrismair * 10dfb59d50631968ab1a13002ea5421ece93169851chrismair * Unless required by applicable law or agreed to in writing, software 11dfb59d50631968ab1a13002ea5421ece93169851chrismair * distributed under the License is distributed on an "AS IS" BASIS, 12dfb59d50631968ab1a13002ea5421ece93169851chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13dfb59d50631968ab1a13002ea5421ece93169851chrismair * See the License for the specific language governing permissions and 14dfb59d50631968ab1a13002ea5421ece93169851chrismair * limitations under the License. 15dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 16dfb59d50631968ab1a13002ea5421ece93169851chrismairpackage org.mockftpserver.fake.filesystem 17dfb59d50631968ab1a13002ea5421ece93169851chrismair 18dfb59d50631968ab1a13002ea5421ece93169851chrismairimport org.mockftpserver.test.AbstractGroovyTestCase 19dfb59d50631968ab1a13002ea5421ece93169851chrismair 20dfb59d50631968ab1a13002ea5421ece93169851chrismair/** 21dfb59d50631968ab1a13002ea5421ece93169851chrismair * Tests for the Permissions class 22dfb59d50631968ab1a13002ea5421ece93169851chrismair * 23dfb59d50631968ab1a13002ea5421ece93169851chrismair * @version $Revision$ - $Date$ 24dfb59d50631968ab1a13002ea5421ece93169851chrismair * 25dfb59d50631968ab1a13002ea5421ece93169851chrismair * @author Chris Mair 26dfb59d50631968ab1a13002ea5421ece93169851chrismair */ 27dfb59d50631968ab1a13002ea5421ece93169851chrismairclass PermissionsTest extends AbstractGroovyTestCase { 28dfb59d50631968ab1a13002ea5421ece93169851chrismair 29dfb59d50631968ab1a13002ea5421ece93169851chrismair void testConstructor() { 30dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithValidString('rwxrwxrwx') 31dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithValidString('rwxr--r--') 32dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithValidString('---------') 33dfb59d50631968ab1a13002ea5421ece93169851chrismair } 34dfb59d50631968ab1a13002ea5421ece93169851chrismair 35dfb59d50631968ab1a13002ea5421ece93169851chrismair void testConstructor_InvalidString() { 36dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('') 37dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('------') 38dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('-') 39dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('r') 40dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('rwx') 41dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('rwxrwxrw') 42dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('123456789') 43dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('rwxrZxrwx') 44dfb59d50631968ab1a13002ea5421ece93169851chrismair testConstructorWithInvalidString('--------Z') 45dfb59d50631968ab1a13002ea5421ece93169851chrismair } 46dfb59d50631968ab1a13002ea5421ece93169851chrismair 47dfb59d50631968ab1a13002ea5421ece93169851chrismair void testCanReadWriteExecute() { 48dfb59d50631968ab1a13002ea5421ece93169851chrismair testCanReadWriteExecute('rwxrwxrwx', true, true, true, true, true, true, true, true, true) 49dfb59d50631968ab1a13002ea5421ece93169851chrismair testCanReadWriteExecute('r--r--r--', true, false, false, true, false, false, true, false, false) 50dfb59d50631968ab1a13002ea5421ece93169851chrismair testCanReadWriteExecute('-w-r----x', false, true, false, true, false, false, false, false, true) 51dfb59d50631968ab1a13002ea5421ece93169851chrismair testCanReadWriteExecute('---------', false, false, false, false, false, false, false, false, false) 52dfb59d50631968ab1a13002ea5421ece93169851chrismair } 53dfb59d50631968ab1a13002ea5421ece93169851chrismair 54dfb59d50631968ab1a13002ea5421ece93169851chrismair void testHashCode() { 55dfb59d50631968ab1a13002ea5421ece93169851chrismair assert new Permissions('rwxrwxrwx').hashCode() == Permissions.DEFAULT.hashCode() 56dfb59d50631968ab1a13002ea5421ece93169851chrismair assert new Permissions('---------').hashCode() == Permissions.NONE.hashCode() 57dfb59d50631968ab1a13002ea5421ece93169851chrismair } 58dfb59d50631968ab1a13002ea5421ece93169851chrismair 59dfb59d50631968ab1a13002ea5421ece93169851chrismair void testEquals() { 60dfb59d50631968ab1a13002ea5421ece93169851chrismair assert new Permissions('rwxrwxrwx').equals(Permissions.DEFAULT) 61dfb59d50631968ab1a13002ea5421ece93169851chrismair assert new Permissions('---------').equals(Permissions.NONE) 62dfb59d50631968ab1a13002ea5421ece93169851chrismair assert Permissions.NONE.equals(Permissions.NONE) 63dfb59d50631968ab1a13002ea5421ece93169851chrismair 64dfb59d50631968ab1a13002ea5421ece93169851chrismair assert !(new Permissions('------rwx').equals(Permissions.NONE)) 65dfb59d50631968ab1a13002ea5421ece93169851chrismair assert !Permissions.NONE.equals(null) 66dfb59d50631968ab1a13002ea5421ece93169851chrismair assert !Permissions.NONE.equals(123) 67dfb59d50631968ab1a13002ea5421ece93169851chrismair } 68dfb59d50631968ab1a13002ea5421ece93169851chrismair 69dfb59d50631968ab1a13002ea5421ece93169851chrismair //-------------------------------------------------------------------------- 70dfb59d50631968ab1a13002ea5421ece93169851chrismair // Helper Methods 71dfb59d50631968ab1a13002ea5421ece93169851chrismair //-------------------------------------------------------------------------- 72dfb59d50631968ab1a13002ea5421ece93169851chrismair 73dfb59d50631968ab1a13002ea5421ece93169851chrismair private testCanReadWriteExecute(rwxString, 74dfb59d50631968ab1a13002ea5421ece93169851chrismair canUserRead, canUserWrite, canUserExecute, 75dfb59d50631968ab1a13002ea5421ece93169851chrismair canGroupRead, canGroupWrite, canGroupExecute, 76dfb59d50631968ab1a13002ea5421ece93169851chrismair canWorldRead, canWorldWrite, canWorldExecute) { 77dfb59d50631968ab1a13002ea5421ece93169851chrismair 78dfb59d50631968ab1a13002ea5421ece93169851chrismair def permissions = new Permissions(rwxString) 79dfb59d50631968ab1a13002ea5421ece93169851chrismair LOG.info("Testing can read/write/execute for $permissions") 80dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canUserRead() == canUserRead 81dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canUserWrite() == canUserWrite 82dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canUserExecute() == canUserExecute 83dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canGroupRead() == canGroupRead 84dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canGroupWrite() == canGroupWrite 85dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canGroupExecute() == canGroupExecute 86dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canWorldRead() == canWorldRead 87dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canWorldWrite() == canWorldWrite 88dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.canWorldExecute() == canWorldExecute 89dfb59d50631968ab1a13002ea5421ece93169851chrismair } 90dfb59d50631968ab1a13002ea5421ece93169851chrismair 91dfb59d50631968ab1a13002ea5421ece93169851chrismair private testConstructorWithInvalidString(String string) { 92dfb59d50631968ab1a13002ea5421ece93169851chrismair LOG.info("Verifying invalid: [$string]") 93dfb59d50631968ab1a13002ea5421ece93169851chrismair shouldFail { new Permissions(string) } 94dfb59d50631968ab1a13002ea5421ece93169851chrismair } 95dfb59d50631968ab1a13002ea5421ece93169851chrismair 96dfb59d50631968ab1a13002ea5421ece93169851chrismair private testConstructorWithValidString(String string) { 97dfb59d50631968ab1a13002ea5421ece93169851chrismair LOG.info("Verifying valid: [$string]") 98dfb59d50631968ab1a13002ea5421ece93169851chrismair def permissions = new Permissions(string) 99dfb59d50631968ab1a13002ea5421ece93169851chrismair LOG.info(permissions) 100dfb59d50631968ab1a13002ea5421ece93169851chrismair assert permissions.asRwxString() == string 101dfb59d50631968ab1a13002ea5421ece93169851chrismair } 102dfb59d50631968ab1a13002ea5421ece93169851chrismair}