/**
     * Tests InputAtomConverter->convertActivities()
     */
    public function testConvertActivities()
    {
        $xml = '<?xml version="1.0" encoding="UTF-8"?>
<entry>
  <content type="application/xml">
    <activity xmlns="http://ns.opensocial.org/2008/opensocial">
        <mediaItems>
          <MediaItem>
            <mimeType>IMAGE</mimeType>
            <type>image</type>
            <url>http://cdn.davesdaily.com/pictures/784-awesome-hands.jpg</url>
            <types>
              <AUDIO>audio</AUDIO>
              <VIDEO>video</VIDEO>
              <IMAGE>image</IMAGE>
            </types>
          </MediaItem>
        </mediaItems>
      <streamTitle>activities</streamTitle>
      <streamId>1</streamId>
      <userId>1</userId>
    </activity>
  </content>
  <author>
    <uri>urn:guid:1</uri>
    <name>api.example.org:1</name>
  </author>
  <category term="status"/>
  <updated>2008-08-05T10:31:04+02:00</updated>
  <id>urn:guid:220</id>
  <title>example title</title>
  <summary>example summary</summary>
</entry>
';
        $activity = $this->InputAtomConverter->convertActivities($xml);
        $this->assertEquals('urn:guid:220', $activity['id']);
        $this->assertEquals('example title', $activity['title']);
        $this->assertEquals('example summary', $activity['body']);
        $this->assertEquals('1', $activity['streamId']);
        $this->assertEquals('activities', $activity['streamTitle']);
        $this->assertEquals('2008-08-05T10:31:04+02:00', $activity['updated']);
        $this->assertEquals('image', $activity['mediaItems'][0]['type']);
        $this->assertEquals('IMAGE', $activity['mediaItems'][0]['mimeType']);
        $this->assertEquals('http://cdn.davesdaily.com/pictures/784-awesome-hands.jpg', $activity['mediaItems'][0]['url']);
    }
 private function decodeRequests($requestParam, $requestType, $format = 'json')
 {
     if (empty($requestParam)) {
         return null;
     }
     switch ($format) {
         case 'json':
             $inputConverter = new InputJsonConverter();
             break;
         case 'atom':
             $inputConverter = new InputAtomConverter();
             break;
         default:
             throw new Exception("Invalid or unsupported input format");
             break;
     }
     switch ($requestType) {
         case 'people':
             $ret = $inputConverter->convertPeople($requestParam);
             break;
         case 'activities':
             $ret = $inputConverter->convertActivities($requestParam);
             break;
         case 'messages':
             $ret = $inputConverter->convertMessages($requestParam);
             break;
         case 'appdata':
             $ret = $inputConverter->convertAppData($requestParam);
             break;
         case 'jsonbatch':
             // this type is only used by the internal json batch format
             if ($format != 'json') {
                 throw new Exception("the json batch only supports the json input format");
             }
             $ret = $inputConverter->convertJsonBatch($requestParam);
             break;
             //TODO add 'groups' and 'messages' here
         //TODO add 'groups' and 'messages' here
         default:
             throw new Exception("Unsupported REST call");
             break;
     }
     return $ret;
 }