Beispiel #1
0
    public function testStream()
    {
        $items = array();
        $author = new Object();
        $author->setObjectType('person');
        $author->setId('12345678-8f0a-1028-xxxz-db07163b51b2');
        $author->setDisplayName('Joe Blogs');
        $item = new Object();
        $item->setContent('This was my first comment');
        $item->setAuthor($author);
        $item->setUpdated(new DateTime('2011-11-21T15:13:59+00:00'));
        $item->setId('f8f0e93f-e462-4ede-92cc-f6e8a1b7eb36');
        $items[] = $item;
        $author = new Object();
        $author->setObjectType('person');
        $author->setId('12345678-8f0a-1028-xxxy-db07163b51b2');
        $author->setDisplayName('Jane Doe');
        $item = new Object();
        $item->setContent('This was another comment');
        $item->setAuthor($author);
        $item->setUpdated(new DateTime('2011-11-21T15:14:06+00:00'));
        $item->setId('5369ea82-d791-46cb-a87a-3696ff90d8f3');
        $items[] = $item;
        $replies = new Collection();
        $replies->setItems($items);
        $replies->setTotalItems(0);
        $author = new Object();
        $author->setId('12345678-8f0a-1028-xxxx-db07163b51b2');
        $author->setDisplayName('Joseph Bloggs');
        $target = new Object();
        $target->setSummary('Top App Entry');
        $target->setReplies($replies);
        $target->setObjectType('note');
        $target->setAuthor($author);
        $target->setUpdated(new DateTime('2011-11-21T15:08:44+00:00'));
        $target->setId('87d7a7fb-af22-403b-ab0d-d101d9caac4f');
        $target->setDisplayName('Joseph Bloggs');
        $target->setPublished(new DateTime('2011-11-21T15:08:44+00:00'));
        $target->setUrl('http://www.example.org/topapp/1028-xxxx-db07163b51b2');
        $provider = new Object();
        $provider->setId('http://www.ibm.com/xmlns/prod/sn');
        $provider->setDisplayName('IBM Connections - News Service');
        $provider->setUrl('http://www.example.org/news');
        $image = new Object();
        $image->setUrl('http://www.example.org/topapp/images/icon.png');
        $generator = new Object();
        $generator->setImage($image);
        $generator->setId('topapp');
        $generator->setDisplayName('Top Application');
        $generator->setUrl('http://www.example.org/topapp');
        $actor = new Object();
        $actor->setId('12345678-8f0a-1028-xxxx-db07163b51b2');
        $actor->setDisplayName('Joseph Bloggs');
        $author = new Object();
        $author->setId('12345678-8f0a-1028-xxxx-db07163b51b2');
        $author->setDisplayName('Joseph Bloggs');
        $object = new Object();
        $object->setSummary('This was my first comment');
        $object->setObjectType('comment');
        $object->setAuthor($author);
        $object->setId('5369ea82-d791-46cb-a87a-3696ff90d8f3');
        $object->setUrl('http://www.example.org/topapp/1028-xxxx-db07163b51b2/comments/1');
        $activity = new Activity();
        $activity->setPublished(new DateTime('2011-11-21T15:14:06+00:00'));
        $activity->setUrl('http://www.example.org/connections/opensocial/rest/activitystreams/@me/@all/@all/86c62a05-61de-4658-97a7-16e7ccf72e78');
        $activity->setTarget($target);
        $activity->setProvider($provider);
        $activity->setGenerator($generator);
        $activity->setActor($actor);
        $activity->setTitle('Joseph Bloggs commented on their own Top App entry.');
        $activity->setContent('<span class="vcard"><a class="fn url" title="This is a link to the profile of Joseph Bloggs." href="http://www.example.org/profiles/html/profileView.do?userid=12345678-8f0a-1028-xxxx-db07163b51b2"><span class="photo" src="http://www.example.org/profiles/photo.do?userid=12345678-8f0a-1028-xxxx-db07163b51b2" alt="This is a photo of Joseph Bloggs." style="display : none"></span>Joseph Bloggs</a><span class="x-lconn-userid" style="display : none">12345678-8f0a-1028-xxxx-db07163b51b2</span></span> commented on their own Top App entry.');
        $activity->setId('urn:lsid:ibm.com:activitystreams:86c62a05-61de-4658-97a7-16e7ccf72e78');
        $activity->setUpdated(new DateTime('2011-11-21T15:14:07+00:00'));
        $activity->setObject($object);
        $activity->setVerb('post');
        $collection = new Collection();
        $collection->setStartIndex(0);
        $collection->setTotalItems(1);
        $collection->setItemsPerPage(1);
        $collection->setItems([$activity]);
        $content = <<<JSON
{
    "startIndex": 0,
    "totalItems": 1,
    "itemsPerPage": 1,
    "items": [
        {
        "published": "2011-11-21T15:14:06Z",
        "url": "http://www.example.org/connections/opensocial/rest/activitystreams/@me/@all/@all/86c62a05-61de-4658-97a7-16e7ccf72e78",
        "target": {
            "summary": "Top App Entry",
            "replies": {
                "items": [{
                    "content": "This was my first comment",
                    "author": {
                        "objectType": "person",
                        "id": "12345678-8f0a-1028-xxxz-db07163b51b2",
                        "displayName": "Joe Blogs"
                    },
                    "updated": "2011-11-21T15:13:59Z",
                    "id": "f8f0e93f-e462-4ede-92cc-f6e8a1b7eb36"
                 },
                 {
                    "content": "This was another comment",
                    "author": {
                        "objectType": "person",
                        "id": "12345678-8f0a-1028-xxxy-db07163b51b2",
                        "displayName": "Jane Doe"
                    },
                    "updated": "2011-11-21T15:14:06Z",
                    "id": "5369ea82-d791-46cb-a87a-3696ff90d8f3"
                 }],
                "totalItems": 0
            },
            "objectType": "note",
            "author": {
                "id": "12345678-8f0a-1028-xxxx-db07163b51b2",
                "displayName": "Joseph Bloggs"
            },
            "updated": "2011-11-21T15:08:44Z",
            "id": "87d7a7fb-af22-403b-ab0d-d101d9caac4f",
            "displayName": "Joseph Bloggs",
            "published": "2011-11-21T15:08:44Z",
            "url": "http://www.example.org/topapp/1028-xxxx-db07163b51b2"
        },
        "provider": {
            "id": "http://www.ibm.com/xmlns/prod/sn",
            "displayName": "IBM Connections - News Service",
            "url": "http://www.example.org/news"
        },
        "generator": {
            "image": {
                "url": "http://www.example.org/topapp/images/icon.png"
            },
            "id": "topapp",
            "displayName": "Top Application",
            "url": "http://www.example.org/topapp"
        },
        "actor": {
            "id": "12345678-8f0a-1028-xxxx-db07163b51b2",
            "displayName": "Joseph Bloggs"
        },
        "title": "Joseph Bloggs commented on their own Top App entry.",
        "content": "<span class=\\"vcard\\"><a class=\\"fn url\\" title=\\"This is a link to the profile of Joseph Bloggs.\\" href=\\"http://www.example.org/profiles/html/profileView.do?userid=12345678-8f0a-1028-xxxx-db07163b51b2\\"><span class=\\"photo\\" src=\\"http://www.example.org/profiles/photo.do?userid=12345678-8f0a-1028-xxxx-db07163b51b2\\" alt=\\"This is a photo of Joseph Bloggs.\\" style=\\"display : none\\"></span>Joseph Bloggs</a><span class=\\"x-lconn-userid\\" style=\\"display : none\\">12345678-8f0a-1028-xxxx-db07163b51b2</span></span> commented on their own Top App entry.",
        "id": "urn:lsid:ibm.com:activitystreams:86c62a05-61de-4658-97a7-16e7ccf72e78",
        "updated": "2011-11-21T15:14:07Z",
        "object": {
            "summary": "This was my first comment",
            "objectType": "comment",
            "author": {
                "id": "12345678-8f0a-1028-xxxx-db07163b51b2",
                "displayName": "Joseph Bloggs"
            },
            "id": "5369ea82-d791-46cb-a87a-3696ff90d8f3",
            "url": "http://www.example.org/topapp/1028-xxxx-db07163b51b2/comments/1"
        },
        "verb": "post"
    }]
}
JSON;
        $this->assertRecordEqualsContent($collection, $content);
    }