public function testCollection() { $items = array(); $item = new Object(); $item->setContent('This was my first comment'); $item->setUpdated(new DateTime('2011-11-21T15:13:59+00:00')); $item->setId('f8f0e93f-e462-4ede-92cc-f6e8a1b7eb36'); $items[] = $item; $item = new Object(); $item->setContent('This was another comment'); $item->setUpdated(new DateTime('2011-11-21T15:14:06+00:00')); $item->setId('5369ea82-d791-46cb-a87a-3696ff90d8f3'); $items[] = $item; $collection = new Collection(); $collection->setItems($items); $collection->setTotalItems(4); $collection->setItemsAfter(new DateTime('2011-11-21T15:13:59+00:00')); $collection->setItemsBefore(new DateTime('2011-11-21T15:13:59+00:00')); $collection->setItemsPerPage(2); $collection->setStartIndex(0); $collection->setFirst('urn:foo:page:1'); $collection->setLast('urn:foo:page:4'); $collection->setPrev('urn:foo:page:2'); $collection->setNext('urn:foo:page:4'); $collection->setCurrent('urn:foo:page:3'); $collection->setSelf('urn:foo:page:3'); $content = <<<JSON { "totalItems": 4, "items": [{ \t"id": "f8f0e93f-e462-4ede-92cc-f6e8a1b7eb36", \t"content": "This was my first comment", \t"updated": "2011-11-21T15:13:59Z" },{ \t"id": "5369ea82-d791-46cb-a87a-3696ff90d8f3", \t"content": "This was another comment", \t"updated": "2011-11-21T15:14:06Z" }], "itemsAfter": "2011-11-21T15:13:59Z", "itemsBefore": "2011-11-21T15:13:59Z", "itemsPerPage": 2, "startIndex": 0, "first": "urn:foo:page:1", "last": "urn:foo:page:4", "prev": "urn:foo:page:2", "next": "urn:foo:page:4", "current": "urn:foo:page:3", "self": "urn:foo:page:3" } JSON; $this->assertRecordEqualsContent($collection, $content); $this->assertEquals($items, $collection->getItems()); $this->assertEquals(4, $collection->getTotalItems()); $this->assertEquals(new DateTime('2011-11-21T15:13:59+00:00'), $collection->getItemsAfter()); $this->assertEquals(new DateTime('2011-11-21T15:13:59+00:00'), $collection->getItemsBefore()); $this->assertEquals(2, $collection->getItemsPerPage()); $this->assertEquals(0, $collection->getStartIndex()); $this->assertEquals('urn:foo:page:1', $collection->getFirst()); $this->assertEquals('urn:foo:page:4', $collection->getLast()); $this->assertEquals('urn:foo:page:2', $collection->getPrev()); $this->assertEquals('urn:foo:page:4', $collection->getNext()); $this->assertEquals('urn:foo:page:3', $collection->getCurrent()); $this->assertEquals('urn:foo:page:3', $collection->getSelf()); }