/** * Verify properties are set properly. * * @test * * @return void */ public function construct() { $client = new Client('not under test', 'not under test', new CharacterAdapter()); $now = new \DateTime(); $data = ['id' => 1, 'name' => 'a name', 'description' => 'a description', 'modified' => $now->format('r'), 'resourceURI' => 'a resource uri', 'urls' => [['type' => 'a type', 'url' => 'a url']], 'thumbnail' => ['path' => 'a path', 'extension' => 'an extension'], 'comics' => ['available' => 2, 'returned' => 1, 'collectionURI' => 'a comics collection uri', 'items' => [['resourceURI' => 'a comics resource uri', 'name' => 'a comics name']]], 'stories' => ['available' => 2, 'returned' => 1, 'collectionURI' => 'a stories collection uri', 'items' => [['resourceURI' => 'a stories resource uri', 'name' => 'a stories name']]], 'events' => ['available' => 2, 'returned' => 1, 'collectionURI' => 'a events collection uri', 'items' => [['resourceURI' => 'a events resource uri', 'name' => 'a events name']]], 'series' => ['available' => 2, 'returned' => 1, 'collectionURI' => 'a series collection uri', 'items' => [['resourceURI' => 'a series resource uri', 'name' => 'a series name']]]]; $character = new Character($data); $this->assertSame(1, $character->getId()); $this->assertSame('a name', $character->getName()); $this->assertSame('a description', $character->getDescription()); $this->assertSame($now->getTimestamp(), $character->getModified()->getTimestamp()); $this->assertSame('a resource uri', $character->getResourceURI()); $this->assertSame(1, count($character->getUrls())); $this->assertSame('a type', $character->getUrls()[0]->getType()); $this->assertSame('a url', $character->getUrls()[0]->getUrl()); $this->assertSame('a path', $character->getThumbnail()->getPath()); $this->assertSame('an extension', $character->getThumbnail()->getExtension()); $this->assertSame(2, $character->getComics()->getAvailable()); $this->assertSame(1, $character->getComics()->getReturned()); $this->assertSame('a comics collection uri', $character->getComics()->getCollectionURI()); $this->assertSame(1, count($character->getComics()->getItems())); $this->assertSame('a comics resource uri', $character->getComics()->getItems()[0]->getResourceURI()); $this->assertSame('a comics name', $character->getComics()->getItems()[0]->getName()); $this->assertSame(2, $character->getStories()->getAvailable()); $this->assertSame(1, $character->getStories()->getReturned()); $this->assertSame(1, count($character->getStories()->getItems())); $this->assertSame('a stories resource uri', $character->getStories()->getItems()[0]->getResourceURI()); $this->assertSame('a stories name', $character->getStories()->getItems()[0]->getName()); $this->assertSame(2, $character->getEvents()->getAvailable()); $this->assertSame(1, $character->getEvents()->getReturned()); $this->assertSame('a events collection uri', $character->getEvents()->getCollectionURI()); $this->assertSame(1, count($character->getEvents()->getItems())); $this->assertSame('a events resource uri', $character->getEvents()->getItems()[0]->getResourceURI()); $this->assertSame('a events name', $character->getEvents()->getItems()[0]->getName()); $this->assertSame(2, $character->getSeries()->getAvailable()); $this->assertSame(1, $character->getSeries()->getReturned()); $this->assertSame('a series collection uri', $character->getSeries()->getCollectionURI()); $this->assertSame(1, count($character->getSeries()->getItems())); $this->assertSame('a series resource uri', $character->getSeries()->getItems()[0]->getResourceURI()); $this->assertSame('a series name', $character->getSeries()->getItems()[0]->getName()); }