/**
  * @test
  */
 public function itShouldSerializeWithLegalObject()
 {
     $this->givenIndicesSerializerWillSerializeIndices();
     $serialized = $this->serializer->serialize($this->getValidObject());
     $this->assertEquals($this->id, $serialized->id);
     $this->assertEquals($this->screenName, $serialized->screen_name);
     $this->assertEquals($this->name, $serialized->name);
     $this->assertEquals($this->indicesObj, $serialized->indices);
 }
 /**
  * @param  TwitterSerializable $object
  * @return \stdClass
  */
 public function serialize(TwitterSerializable $object)
 {
     /* @var TwitterEntities $object */
     Assertion::true($this->canSerialize($object), 'object must be an instance of TwitterEntities');
     $entities = new \stdClass();
     // Hashtags
     if ($object->getHashtags()) {
         $entities->hashtags = [];
         foreach ($object->getHashtags() as $hashtag) {
             $entities->hashtags[] = $this->hashtagSerializer->serialize($hashtag);
         }
     }
     // Symbols
     if ($object->getSymbols()) {
         $entities->symbols = [];
         foreach ($object->getSymbols() as $symbol) {
             $entities->symbols[] = $this->symbolSerializer->serialize($symbol);
         }
     }
     // Urls
     if ($object->getUrls()) {
         $entities->urls = [];
         foreach ($object->getUrls() as $url) {
             $entities->urls[] = $this->urlSerializer->serialize($url);
         }
     }
     // User mentions
     if ($object->getUserMentions()) {
         $entities->user_mentions = [];
         foreach ($object->getUserMentions() as $userMention) {
             $entities->user_mentions[] = $this->userMentionSerializer->serialize($userMention);
         }
     }
     // Media
     if ($object->getMedia()) {
         $entities->media = [];
         foreach ($object->getMedia() as $media) {
             $entities->media[] = $this->mediaSerializer->serialize($media);
         }
     }
     // Extended entities
     if ($object->getExtendedEntities()) {
         $entities->extended_entities = [];
         foreach ($object->getExtendedEntities() as $extendedEntity) {
             $entities->extended_entities[] = $this->extendedEntitySerializer->serialize($extendedEntity);
         }
     }
     return $entities;
 }