<?php

# $HeadURL: https://svn.sigpipe.cz/r/trunk/testilence/tests/loader.php $
# $Id: loader.php 364 2007-01-27 19:04:20Z roman $


class tencetest_BasicLoaderTest extends Tence_TestCase # {{{
{
    private 
$loader$td$dir$file;
    function 
setUp() # {{{
    
{
        
$this->loader = new Tence_BasicLoader;
        
$this->td $this->mkdtemp();
        
$this->tf $this->mkstemp();
        
$this->dir $this->td->path();
        
$this->file $this->tf->path();
    } 
# }}}
    
private function classFile($path# {{{
    
{
        return new 
Tence_TestClassFile($path);
    } 
# }}}
    
private function loadFileWillThrow(Tence_TestClassFile $cf# {{{
    
{
        
$this->willThrow('Tence_FileNotLoadable');
        
$this->loader->loadFile($cf);
    } 
# }}}
    
function testThrowsOnNonexistentPath() # {{{
    
{
        
$cf $this->classFile($this->file);
        unset(
$this->tf);
        
$this->loadFileWillThrow($cf);
    } 
# }}}
    
function testThrowsOnNonreadableFile() # {{{
    
{
        
$cf $this->classFile($this->file);
        
chmod($this->file0);
        
$this->loadFileWillThrow($cf);
    } 
# }}}
    
function testThrowsOnDirectory() # {{{
    
{
        
$cf $this->classFile($this->file);
        
unlink($this->file);
        
mkdir($this->file);
        
$this->loadFileWillThrow($cf);
    } 
# }}}
    
function testThrowsOnDanglingSymlink() # {{{
    
{
        
$link $this->dir DIRECTORY_SEPARATOR 'link';
        
symlink($this->file$link);
        
$cf $this->classFile($link);
        
unlink($this->file);
        
$this->loadFileWillThrow($cf);
    } 
# }}}
# }}}

# vim: et ts=4 sts=4 sw=4 fdm=marker cms=\ #\ %s