{
        $this->_parent = $parent;
    }
}
$test = new lime_test(null, new lime_output_color());
$test->is(ckObjectWrapper::wrap(null), null);
$test->is(ckObjectWrapper::unwrap(null), null);
$test->is(ckObjectWrapper::wrap(10), 10);
$test->is(ckObjectWrapper::unwrap(10), 10);
$test->is(ckObjectWrapper::wrap('str'), 'str');
$test->is(ckObjectWrapper::unwrap('str'), 'str');
$std = new StdObject('testData');
$wrappedStd = ckObjectWrapper::wrap($std);
$test->isa_ok($wrappedStd, 'ckGenericObjectAdapter');
$test->is($wrappedStd->getObject(), $std);
$test->is(ckObjectWrapper::unwrap($wrappedStd), $std);
$wrappedWrappedStd = ckObjectWrapper::wrap($wrappedStd);
$test->isa_ok($wrappedWrappedStd, 'ckGenericObjectAdapter');
$test->is($wrappedWrappedStd, $wrappedStd);
$test->is($wrappedWrappedStd->getObject(), $std);
$tbRoot = new TreeBeanObject(null);
$tbRoot->setParent($tbRoot);
$tbChild1 = new TreeBeanObject($tbRoot);
$tbChild2 = new TreeBeanObject($tbChild1);
$wrappedTbChild2 = ckObjectWrapper::wrap($tbChild2);
$test->isa_ok($wrappedTbChild2, 'ckGenericObjectAdapter');
$test->isa_ok($wrappedTbChild2->parent, 'ckGenericObjectAdapter');
$test->isa_ok($wrappedTbChild2->parent->parent, 'ckGenericObjectAdapter');
$wrappedTbRoot = $wrappedTbChild2->parent->parent;
$test->is($wrappedTbRoot->parent->getObject(), $wrappedTbRoot->getObject());
$test->is($wrappedTbRoot->parent, $wrappedTbRoot);
 /**
  * Gets the given property of the managed object through its property strategy.
  * The property value is wrapped in a SOAP-processable type using ckObjectWrapper::wrap().
  *
  * @param string $property The property to get
  *
  * @return object
  */
 public function __get($property)
 {
     return ckObjectWrapper::wrap($this->getPropertyStrategy()->getPropertyValue($this->getObject(), $property));
 }
 /**
  * (non-PHPdoc)
  * @see lib/adapter/ckAbstractResultAdapter#getResult()
  */
 public function getResult(sfAction $action)
 {
     return ckObjectWrapper::wrap($this->doGetResult($action));
 }