[limb-svn] r6895 - in 3.x/trunk/limb/toolkit: src tests/cases
svn at limb-project.com
svn at limb-project.com
Wed Apr 2 17:49:24 MSD 2008
Author: pachanga
Date: 2008-04-02 17:49:22 +0400 (Wed, 02 Apr 2008)
New Revision: 6895
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6895
Modified:
3.x/trunk/limb/toolkit/src/lmbToolkit.class.php
3.x/trunk/limb/toolkit/tests/cases/lmbToolkitTest.class.php
Log:
-- making lmbToolkit tests more readable and isolated
-- lmbToolkit stores its unique id which is using for lmbRegistry access
Modified: 3.x/trunk/limb/toolkit/src/lmbToolkit.class.php
===================================================================
--- 3.x/trunk/limb/toolkit/src/lmbToolkit.class.php 2008-04-02 07:11:49 UTC (rev 6894)
+++ 3.x/trunk/limb/toolkit/src/lmbToolkit.class.php 2008-04-02 13:49:22 UTC (rev 6895)
@@ -56,7 +56,16 @@
* @var boolean Flag if tools signatures were precached
*/
protected $_signatures_loaded = false;
+ /**
+ * @var string Unique id of this toolkit
+ */
+ protected $_id;
+ function __construct()
+ {
+ $toolkit->_id = uniqid();
+ }
+
/**
* Follows Singleton pattern interface
* Returns toolkit instance. Takes instance from {@link lmbRegistry)
@@ -115,12 +124,12 @@
foreach($toolkit->_tools as $tool)
$tools_copy[] = clone($tool);
- lmbRegistry :: set('__tools', $tools);
- lmbRegistry :: save('__tools');
+ lmbRegistry :: set('__tools' . $toolkit->_id, $tools);
+ lmbRegistry :: save('__tools' . $toolkit->_id);
$toolkit->setTools($tools_copy);
- lmbRegistry :: set('__props', $toolkit->export());
- lmbRegistry :: save('__props');
+ lmbRegistry :: set('__props' . $toolkit->_id, $toolkit->export());
+ lmbRegistry :: save('__props' . $toolkit->_id);
return $toolkit;
}
@@ -133,10 +142,10 @@
{
$toolkit = lmbToolkit :: instance();
- lmbRegistry :: restore('__tools');
- $tools = lmbRegistry :: get('__tools');
- lmbRegistry :: restore('__props');
- $props = lmbRegistry :: get('__props');
+ lmbRegistry :: restore('__tools' . $toolkit->_id);
+ $tools = lmbRegistry :: get('__tools' . $toolkit->_id);
+ lmbRegistry :: restore('__props' . $toolkit->_id);
+ $props = lmbRegistry :: get('__props' . $toolkit->_id);
if($props !== null)
{
Modified: 3.x/trunk/limb/toolkit/tests/cases/lmbToolkitTest.class.php
===================================================================
--- 3.x/trunk/limb/toolkit/tests/cases/lmbToolkitTest.class.php 2008-04-02 07:11:49 UTC (rev 6894)
+++ 3.x/trunk/limb/toolkit/tests/cases/lmbToolkitTest.class.php 2008-04-02 13:49:22 UTC (rev 6895)
@@ -12,20 +12,20 @@
class TestTools extends lmbAbstractTools
{
- var $foo_counter = 0;
+ var $calls = 0;
- function foo()
+ function commonMethod()
{
- $this->foo_counter++;
- return 'a';
+ $this->calls++;
+ return 'commonMethod1';
}
- function getFooCounter()
+ function getCommonMethodCalls()
{
- return $this->foo_counter;
+ return $this->calls;
}
- function bar($arg)
+ function returnArg($arg)
{
return $arg;
}
@@ -41,41 +41,30 @@
}
}
-class TestIntersectingTools implements lmbToolkitTools
+class TestTools2 extends lmbAbstractTools
{
- function getToolsSignatures()
+ function commonMethod()
{
- return array('baz' => $this, 'foo' => $this);
+ return 'commonMethod2';
}
function baz()
{
- return 'c';
+ return 'baz2';
}
-
- function foo()
- {
- return 'd';
- }
}
class lmbToolkitTest extends UnitTestCase
{
- function setUp()
- {
- lmbToolkit :: save();
- }
-
- function tearDown()
- {
- lmbToolkit :: restore();
- }
-
function testInstance()
{
//there is a weird "recursion too deep" error on older versions of PHP
- if(version_compare(phpversion(), '5.2.0', '>'))
- $this->assertIdentical(lmbToolkit :: instance(), lmbToolkit :: instance());
+ //if(version_compare(phpversion(), '5.2.3', '>'))
+ // $this->assertIdentical(lmbToolkit :: instance(), lmbToolkit :: instance());
+
+ $t1 = lmbToolkit :: instance();
+ $t2 = lmbToolkit :: instance();
+ $this->assertReference($t1, $t2);
}
function testNoSuchMethod()
@@ -94,91 +83,109 @@
{
$toolkit = new lmbToolkit();
$toolkit->add(new TestTools());
- $this->assertEqual($toolkit->foo(), 'a');
- $this->assertEqual($toolkit->bar('b'), 'b');
+ $this->assertEqual($toolkit->commonMethod(), 'commonMethod1');
+ $this->assertEqual($toolkit->returnArg('b'), 'b');
}
function testAddSeveralTools()
{
$toolkit = new lmbToolkit();
$toolkit->add(new TestTools());
- $this->assertEqual($toolkit->foo(), 'a');
- $this->assertEqual($toolkit->bar('b'), 'b');
+ $this->assertEqual($toolkit->commonMethod(), 'commonMethod1');
+ $this->assertEqual($toolkit->returnArg('b'), 'b');
- $toolkit->add(new TestIntersectingTools());
- $this->assertEqual($toolkit->foo(), 'd');
- $this->assertEqual($toolkit->bar('b'), 'b');
+ $toolkit->add(new TestTools2());
+ $this->assertEqual($toolkit->commonMethod(), 'commonMethod2');
+ $this->assertEqual($toolkit->returnArg('b'), 'b');
}
function testSaveRestoreToolkit()
{
+ lmbToolkit :: save();
+
$toolkit = lmbToolkit :: setup(new TestTools());
- $toolkit->foo();
- $toolkit->foo();
- $this->assertEqual($toolkit->getFooCounter(), 2);
+ $toolkit->commonMethod();
+ $toolkit->commonMethod();
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 2);
$toolkit = lmbToolkit :: save();
- $toolkit->foo();
- $this->assertEqual($toolkit->getFooCounter(), 3);
+ $toolkit->commonMethod();
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 3);
$toolkit = lmbToolkit :: save();
- $toolkit->foo();
- $this->assertEqual($toolkit->getFooCounter(), 4);
+ $toolkit->commonMethod();
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 4);
$toolkit = lmbToolkit :: restore();
- $this->assertEqual($toolkit->getFooCounter(), 3);
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 3);
$toolkit = lmbToolkit :: restore();
- $this->assertEqual($toolkit->getFooCounter(), 2);
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 2);
lmbToolkit :: restore();
+
+ lmbToolkit :: restore();
}
function testSaveAndRestoreAlwaysReturnTheSameToolkitInstance()
{
+ lmbToolkit :: save();
+
$toolkit = lmbToolkit :: setup(new TestTools());
$toolkit1 = lmbToolkit :: save();
- $toolkit1->foo();
+ $toolkit1->commonMethod();
$toolkit2 = lmbToolkit :: restore();
- $this->assertIdentical($toolkit1, $toolkit2);
+ //if(version_compare(phpversion(), '5.2.3', '>'))
+ // $this->assertIdentical($toolkit1, $toolkit2);
+ $this->assertReference($toolkit1, $toolkit2);
$toolkit3 = lmbToolkit :: save();
- $this->assertIdentical($toolkit1, $toolkit3);
+ //if(version_compare(phpversion(), '5.2.3', '>'))
+ // $this->assertIdentical($toolkit1, $toolkit3);
+ $this->assertReference($toolkit1, $toolkit3);
lmbToolkit :: restore();
}
function testMerge()
{
+ lmbToolkit :: save();
+
lmbToolkit :: setup(new TestTools());
- $toolkit = lmbToolkit :: merge(new TestIntersectingTools());
- $this->assertEqual($toolkit->foo(), 'd');
+ $toolkit = lmbToolkit :: merge(new TestTools2());
+ $this->assertEqual($toolkit->commonMethod(), 'commonMethod2');
+
+ lmbToolkit :: restore();
}
function testMergeSeveral()
{
+ lmbToolkit :: save();
+
lmbToolkit :: merge(new TestTools());
$toolkit = lmbToolkit :: save();
- $toolkit->foo();
- $toolkit->foo();
- $this->assertEqual($toolkit->getFooCounter(), 2);
+ $toolkit->commonMethod();
+ $toolkit->commonMethod();
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 2);
$toolkit = lmbToolkit :: merge(new TestTools());
- $this->assertEqual($toolkit->getFooCounter(), 0);
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 0);
$toolkit = lmbToolkit :: instance();
- $toolkit->foo();
- $this->assertEqual($toolkit->getFooCounter(), 1);
+ $toolkit->commonMethod();
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 1);
$toolkit = lmbToolkit :: restore();
- $this->assertEqual($toolkit->getFooCounter(), 0);
+ $this->assertEqual($toolkit->getCommonMethodCalls(), 0);
+
+ lmbToolkit :: restore();
}
function testSetGet()
{
- $toolkit = lmbToolkit :: instance();
+ $toolkit = new lmbToolkit();
$toolkit->set('my_var', 'value1');
$this->assertEqual($toolkit->get('my_var'), 'value1');
@@ -186,20 +193,22 @@
function testGetWithDefaultValue()
{
- $toolkit = lmbToolkit :: instance();
+ $toolkit = new lmbToolkit();
try
{
- $toolkit->get('foo');
+ $toolkit->get('commonMethod');
$this->fail();
} catch (Exception $e) {
$this->pass();
}
- $this->assertEqual($toolkit->get('foo', 'baz'), 'baz');
+ $this->assertEqual($toolkit->get('commonMethod', 'baz'), 'baz');
}
function testSaveAndRestoreProperties()
{
+ lmbToolkit :: save();
+
$toolkit = lmbToolkit :: instance();
$toolkit->set('my_var', 'value1');
@@ -210,10 +219,14 @@
lmbToolkit :: restore();
$this->assertEqual($toolkit->get('my_var'), 'value1');
+
+ lmbToolkit :: restore();
}
function testOverloadGetterByTools()
{
+ lmbToolkit :: save();
+
$toolkit = lmbToolkit :: setup(new TestTools());
$toolkit->set('var', 'value1');
@@ -227,6 +240,8 @@
lmbToolkit :: restore();
$this->assertEqual($toolkit->get('var'), 'value1');
+
+ lmbToolkit :: restore();
}
}
More information about the limb-svn
mailing list