sintonia/library/propel/test/testsuite/runtime/om/BaseObjectSerializeTest.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));
}
}