<?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->file, 0);
$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