[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