/**
  * Initialize core values of the Builder.
  * Should be the first initialization performed in a concrete type.
  * @param PropertySpecification $specification
  */
 protected function initBuilder($specification)
 {
     \assert(null !== $specification);
     $this->specification = $specification;
     $constraints = $specification->getConstraints();
     if (array_key_exists('allowedValueTypes', $constraints)) {
         $this->allowedValueTypes = $constraints['allowedValueTypes'];
     } else {
         $this->allowedValueTypes = self::$allValueTypes;
     }
     if (array_key_exists('valueTypeDefault', $constraints)) {
         $this->valueTypeDefault = $constraints['valueTypeDefault'];
     } else {
         $this->valueTypeDefault = $this->getDefaultValueTypeDefault();
     }
 }
 /**
  * @group default
  */
 public function testGetConstraints()
 {
     $this->assertEquals(['constraintName' => 'constraintValue'], $this->specification->getConstraints());
     $this->assertEmpty($this->singleSpec->getConstraints());
 }