/**
  * @covers Contentful\Delivery\ContentTypeField::__construct
  * @covers Contentful\Delivery\ContentTypeField::getId
  * @covers Contentful\Delivery\ContentTypeField::getName
  * @covers Contentful\Delivery\ContentTypeField::getType
  * @covers Contentful\Delivery\ContentTypeField::getLinkType
  * @covers Contentful\Delivery\ContentTypeField::getItemsLinkType
  * @covers Contentful\Delivery\ContentTypeField::getItemsType
  * @covers Contentful\Delivery\ContentTypeField::isRequired
  * @covers Contentful\Delivery\ContentTypeField::isLocalized
  * @covers Contentful\Delivery\ContentTypeField::isDisabled
  */
 public function testGetter()
 {
     $field = new ContentTypeField('id', 'name', 'type', 'linkType', 'itemsType', 'itemsLinkType', true, false, false);
     $this->assertEquals('id', $field->getId());
     $this->assertEquals('name', $field->getName());
     $this->assertEquals('type', $field->getType());
     $this->assertEquals('linkType', $field->getLinkType());
     $this->assertEquals('itemsLinkType', $field->getItemsLinkType());
     $this->assertEquals('itemsType', $field->getItemsType());
     $this->assertEquals(true, $field->isRequired());
     $this->assertEquals(false, $field->isLocalized());
     $this->assertEquals(false, $field->isDisabled());
 }
 /**
  * Get the docblock for the getter method for the given field.
  *
  * @param  ContentTypeField $field
  *
  * @return string
  */
 protected function getMethodDocBlockType(ContentTypeField $field)
 {
     $type = $field->getType();
     $result = '';
     $typeMap = ['Symbol' => 'string', 'Text' => 'string', 'Integer' => 'int', 'Number' => 'float', 'Boolean' => 'bool', 'Date' => '\\DateTimeImmutable', 'Location' => '\\Contentful\\Location', 'Object' => 'object|array'];
     if (isset($typeMap[$type])) {
         $result = $typeMap[$type];
     } elseif ($type === 'Array') {
         $result = 'array';
     } elseif ($type === 'Link') {
         $linkType = $field->getLinkType();
         if ($linkType === 'Entry') {
             $result = '\\Contentful\\Delivery\\DynamicEntry';
         } elseif ($linkType === 'Asset') {
             $result = '\\Contentful\\Delivery\\Asset';
         } else {
             throw new \InvalidArgumentException('Unexpected link type "' . $linkType . '" encountered while trying to generate class.');
         }
     } else {
         throw new \InvalidArgumentException('Unexpected field type "' . $type . '" encountered while trying to generate class.');
     }
     if (!$field->isRequired()) {
         $result .= '|null';
     }
     return $result;
 }