95 lines
2.3 KiB
PHP
95 lines
2.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* This file is part of the Propel package.
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*
|
|
* @license MIT License
|
|
*/
|
|
|
|
require_once 'tools/helpers/bookstore/BookstoreTestBase.php';
|
|
require_once 'tools/helpers/bookstore/BookstoreDataPopulator.php';
|
|
|
|
/**
|
|
* Test class for BaseObject serialization.
|
|
*
|
|
* @author Francois Zaninotto
|
|
* @version $Id: PropelCollectionTest.php 1348 2009-12-03 21:49:00Z francois $
|
|
* @package runtime.om
|
|
*/
|
|
class BaseObjectSerializeTest extends BookstoreTestBase
|
|
{
|
|
public function testSerializeEmptyObject()
|
|
{
|
|
$book = new Book();
|
|
$sb = serialize($book);
|
|
$this->assertEquals($book, unserialize($sb));
|
|
}
|
|
|
|
public function testSerializePopulatedObject()
|
|
{
|
|
$book = new Book();
|
|
$book->setTitle('Foo1');
|
|
$book->setISBN('1234');
|
|
$sb = serialize($book);
|
|
$this->assertEquals($book, unserialize($sb));
|
|
}
|
|
|
|
public function testSerializePersistedObject()
|
|
{
|
|
$book = new Book();
|
|
$book->setTitle('Foo2');
|
|
$book->setISBN('1234');
|
|
$book->save();
|
|
$sb = serialize($book);
|
|
$this->assertEquals($book, unserialize($sb));
|
|
}
|
|
|
|
public function testSerializeHydratedObject()
|
|
{
|
|
$book = new Book();
|
|
$book->setTitle('Foo3');
|
|
$book->setISBN('1234');
|
|
$book->save();
|
|
BookPeer::clearInstancePool();
|
|
|
|
$book = BookQuery::create()->findOneByTitle('Foo3');
|
|
$sb = serialize($book);
|
|
$this->assertEquals($book, unserialize($sb));
|
|
}
|
|
|
|
public function testSerializeObjectWithRelations()
|
|
{
|
|
$author = new Author();
|
|
$author->setFirstName('John');
|
|
$book = new Book();
|
|
$book->setTitle('Foo4');
|
|
$book->setISBN('1234');
|
|
$book->setAuthor($author);
|
|
$book->save();
|
|
$b = clone $book;
|
|
$sb = serialize($b);
|
|
$book->clearAllReferences();
|
|
$this->assertEquals($book, unserialize($sb));
|
|
}
|
|
|
|
public function testSerializeObjectWithCollections()
|
|
{
|
|
$book1 = new Book();
|
|
$book1->setTitle('Foo5');
|
|
$book1->setISBN('1234');
|
|
$book2 = new Book();
|
|
$book2->setTitle('Foo6');
|
|
$book2->setISBN('1234');
|
|
$author = new Author();
|
|
$author->setFirstName('JAne');
|
|
$author->addBook($book1);
|
|
$author->addBook($book2);
|
|
$author->save();
|
|
$a = clone $author;
|
|
$sa = serialize($a);
|
|
$author->clearAllReferences();
|
|
$this->assertEquals($author, unserialize($sa));
|
|
}
|
|
} |