/**
  * Serializes the current state.
  * 
  * @param CurrentState  $state        The current state.
  * @param IOutputStream $outputStream The output stream.
  * 
  * @return none
  */
 public function serialize($state, $outputStream)
 {
     $statusLeaseInfo = array('StatusLease' => array('@attributes' => array('ClientId' => $state->getClientId())));
     if ($state instanceof AcquireCurrentState) {
         $statusLeaseInfo['StatusLease']['Acquire'] = array('Incarnation' => $state->getIncarnation(), 'Status' => $state->getStatus(), 'Expiration' => Utilities::isoDate(date_timestamp_get($state->getExpiration())));
     } elseif ($state instanceof ReleaseCurrentState) {
         $statusLeaseInfo['StatusLease']['Release'] = array();
     }
     $currentState = Utilities::serialize($statusLeaseInfo, 'CurrentState');
     fwrite($outputStream, $currentState);
 }
 /**
  * @covers WindowsAzure\Common\Internal\Utilities::serialize
  * @covers WindowsAzure\Common\Internal\Utilities::_arr2xml
  */
 public function testSerializeAttribute()
 {
     // Setup
     $expected = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<Object field1="value1" field2="value2"/>';
     $object = array('@attributes' => array('field1' => 'value1', 'field2' => 'value2'));
     // Test
     $actual = Utilities::serialize($object, 'Object');
     $this->assertEquals($expected, $actual);
 }