Changeset 758

Show
Ignore:
Timestamp:
07/10/07 15:25:06 (1 year ago)
Author:
mikey
Message:

net.stubbles.util.datespan.stubDateSpan* now implements net.stubbles.stubSerializable

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/main/php/net/stubbles/util/datespan/stubDateSpan.php

    r695 r758  
    1414 * @subpackage  util_datespan 
    1515 */ 
    16 interface stubDateSpan extends stubObject 
     16interface stubDateSpan extends stubObject, stubSerializable 
    1717{ 
    1818    /** 
  • trunk/src/main/php/net/stubbles/util/datespan/stubDateSpanCustom.php

    r695 r758  
    1717 * @subpackage  util_datespan 
    1818 */ 
    19 class stubDateSpanCustom extends stubBaseObject implements stubDateSpan 
     19class stubDateSpanCustom extends stubSerializableObject implements stubDateSpan 
    2020{ 
    2121    /** 
     
    147147        return false; 
    148148    } 
     149 
     150    /** 
     151     * takes care of serializing the value 
     152     * 
     153     * @param  array   $propertiesToSerialize  list of properties to serialize 
     154     * @param  string  $name                   name of the property to serialize 
     155     * @param  mixed   $value                  value to serialize 
     156     */ 
     157    protected function __doSerialize(&$propertiesToSerialize, $name, $value) 
     158    { 
     159        if ('from' == $name || 'to' == $name) { 
     160            $this->_serializedProperties[$name] = $value->format('c'); 
     161            return; 
     162        } 
     163         
     164        parent::__doSerialize($propertiesToSerialize, $name, $value); 
     165    } 
     166 
     167    /** 
     168     * takes care of unserializing the value 
     169     * 
     170     * @param  string  $name             name of the property 
     171     * @param  mixed   $serializedValue  value of the property 
     172     */ 
     173    protected function __doUnserialize($name, $serializedValue) 
     174    { 
     175        if ('from' == $name || 'to' == $name) { 
     176            $this->$name = new DateTime($serializedValue); 
     177            return; 
     178        } 
     179         
     180        parent::__doUnserialize($name, $serializedValue); 
     181    } 
    149182} 
    150183?> 
  • trunk/src/test/php/net/stubbles/util/datespan/stubDateSpanCustomTestCase.php

    r695 r758  
    4848        $this->assertFalse($dateSpanCustom->isFuture()); 
    4949    } 
     50 
     51    /** 
     52     * test that serializing and unserializing a datespan works as expected 
     53     */ 
     54    public function testSerializing() 
     55    { 
     56        $dateSpanCustom = new stubDateSpanCustom('2007-05-14', '2007-05-27'); 
     57        $serialized = serialize($dateSpanCustom); 
     58        $unserialized = unserialize($serialized); 
     59        $this->assertEqual($unserialized->getStartDate()->format('Y-m-d'), $dateSpanCustom->getStartDate()->format('Y-m-d')); 
     60        $this->assertEqual($unserialized->getEndDate()->format('Y-m-d'), $dateSpanCustom->getEndDate()->format('Y-m-d')); 
     61    } 
    5062} 
    5163?>