Login   Register  
PHP Classes
elePHPant
Icontem

File: test_shelves.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Alexander Zhukov  >  PHP Shelve  >  test_shelves.php  >  Download  
File: test_shelves.php
Role: ???
Content type: text/plain
Description: Unit tests for the library
Class: PHP Shelve
Simple persistence mechanism for php objects
Author: By
Last change:
Date: 2002-07-10 12:20
Size: 3,568 bytes
 

Contents

Class file image Download
<?
/* include the neded classes here
include_once("phpunit/phpunit.php");
include_once("../Files.inc.php");
include_once("../Pickle.inc.php");
include_once("../Shelve.inc.php");
*/

$suite = new TestSuite();


class FileFixture extends TestCase {

	var $_file;
	var $_string;

	function FileFixture($name)
	{
		$this->TestCase($name);
	}
	
	function setUp()
	{
		$this->_file = new File("__testfile");
		$this->_string = "test string";
	}
	
	function testFileWrite()
	{
		$this->_file->write($this->_string);
	}

	function testFileExists()
	{
		$this->assert($this->_file->exists());
	}

	function testFileRead()
	{
		$this->assertEquals($this->_string,$this->_file->read());
	}

	function testFileDelete()
	{
		$this->_file->delete();
		$this->assert(!is_file($this->_file->_file));
	}
}

$suite->addtest(new FileFixture("testFileWrite"));
$suite->addtest(new FileFixture("testFileExists"));
$suite->addtest(new FileFixture("testFileRead"));
$suite->addtest(new FileFixture("testFileDelete"));

class DummyClass
{
	var $test;
	function DummyClass($test)
	{
		$this->test = $test;
	}
}

class PickleFixture extends TestCase
{
	var $_file;
	var $_pickle;
	var $_unpickle;
	var $obj;
	
	function PickleFixture($name)
	{
		$this->TestCase($name);
	}

	function setUp()
	{
		$this->_file = new File("__testfile");
		$this->_pickle = new Pickle($this->_file);
		$this->_unpickle = new Unpickle($this->_file);
		$this->obj = new DummyClass("test string");
	}

	function tearDown()
	{
		$this->_file->delete();
	}

	function testPickler()
	{
		$this->_pickle->dump($this->obj);
		$this->assertEquals($this->obj,$this->_unpickle->load());
	}

}

$suite->addtest(new PickleFixture("testPickler"));



class ShelvesFixture extends TestCase
{
	var $obj;
	var $shelf_name;

	function ShelvesFixture($name)
	{
		$this->TestCase($name);
	}

	function setUp()
	{
		$this->obj = new DummyClass("test string");
		$this->shelf_name = "_test_shlef";
	}

	function testShelfAdd()
	{
		$shelf =& new Shelve($this->shelf_name);
		$shelf->put("test",$this->obj);
		$this->assertEquals($this->obj,$shelf->get("test"));
		$shelf->destroy();
	}

    

	function testShelfSaveLoad()
	{
		$shelf =& new Shelve($this->shelf_name);
		$shelf->put("test",$this->obj);
		$shelf->close();
		unset($shelf);
	
		$shelf2 =& new Shelve($this->shelf_name); 
		$this->assertEquals($this->obj,$shelf2->get("test"));
		$shelf2->destroy();
	}


	function testShelfDeleteKey()
	{
		$shelf =& new Shelve($this->shelf_name);
		$shelf->put("test",$this->obj);
		$shelf->close();
		unset($shelf);
		$shelf = new Shelve($this->shelf_name);
		$shelf->del("test");
		$shelf->close();
		unset($shelf);
		
		$shelf2 =& new Shelve($this->shelf_name); 
		$this->assert($shelf2->get("test") == 0);
		$shelf2->destroy();
	}

	function testShelfIndex()
	{
		$shelf =& new Shelve($this->shelf_name);
		$shelf->put("key1",$this->obj);
		$shelf->put("key2",$this->obj);
		$shelf->close();
		unset($shelf);
		
		$shelf =& new Shelve($this->shelf_name);
		
		$this->assertEquals(2,sizeof($shelf->keys()));
		$shelf->close();
		$shelf->destroy();
	} 

}

$suite->addtest(new ShelvesFixture("testShelfAdd"));
$suite->addtest(new ShelvesFixture("testShelfSaveLoad"));
$suite->addtest(new ShelvesFixture("testShelfDeleteKey"));
$suite->addtest(new ShelvesFixture("testShelfIndex"));


$res = new TextTestResult();
$suite->run(&$res);
$res->report();

?>