initial version
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package net.rubygrapefruit.platform
|
||||
|
||||
import spock.lang.Specification
|
||||
import org.junit.Rule
|
||||
import org.junit.rules.TemporaryFolder
|
||||
|
||||
class UnixFileModeTest extends Specification {
|
||||
@Rule TemporaryFolder tmpDir
|
||||
final UnixFileMode file = Platform.get(UnixFileMode.class)
|
||||
|
||||
def "can set mode on a file"() {
|
||||
def testFile = tmpDir.newFile("test.txt")
|
||||
|
||||
when:
|
||||
file.setMode(testFile, 0740)
|
||||
|
||||
then:
|
||||
file.getMode(testFile) == 0740
|
||||
}
|
||||
|
||||
def "can set mode on a file with unicode in its name"() {
|
||||
def testFile = tmpDir.newFile("test\u03b1.txt")
|
||||
|
||||
when:
|
||||
file.setMode(testFile, 0740)
|
||||
|
||||
then:
|
||||
file.getMode(testFile) == 0740
|
||||
}
|
||||
|
||||
def "throws exception on failure to set mode"() {
|
||||
def file = new File(tmpDir.root, "unknown")
|
||||
|
||||
when:
|
||||
this.file.setMode(file, 0660)
|
||||
|
||||
then:
|
||||
NativeException e = thrown()
|
||||
e.message == "Could not set UNIX mode on $file. Errno is 2."
|
||||
}
|
||||
|
||||
def "throws exception on failure to get mode"() {
|
||||
def file = new File(tmpDir.root, "unknown")
|
||||
|
||||
when:
|
||||
this.file.getMode(file)
|
||||
|
||||
then:
|
||||
NativeException e = thrown()
|
||||
e.message == "Could not get UNIX mode on $file. Errno is 2."
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user