/**
  * @group default
  * @depends testSetAndBuild
  */
 public function testEmptyTypesPermitsAll()
 {
     $specification = new PropertySpecification('tel', PropertySpecification::MULTIPLE_PROPERTY, __NAMESPACE__ . '\\TypedPropertyBuilderImpl', PropertySpecification::$cardinalities['Zero To N'], ['allowedTypes' => []]);
     $builder = $specification->getBuilder();
     $builder->setValue('999-555-1212')->addType('skadgamagoozie');
     $property = $builder->build();
     $this->assertContains('skadgamagoozie', $property->getTypes());
 }
 /**
  * @group default
  * @depends testSetAndBuild
  * @param \EVought\vCardTools\PropertySpecification $specification
  */
 public function testPushTo(PropertySpecification $specification)
 {
     $container = new PropertyContainerImpl();
     $builder = $specification->getBuilder();
     $builder->setValue('http://liquor.cabi.net');
     $property = $builder->pushTo($container);
     $this->assertEquals('http://liquor.cabi.net', $container->current()->getValue());
 }
 /**
  * @group default
  * @param \EVought\vCardTools\PropertySpecification $specification
  * @depends testSetAndBuild
  */
 public function testSetFromVCardLine(PropertySpecification $specification)
 {
     $vcardLine = new VCardLine('4.0');
     $vcardLine->setGroup('glurg')->setName('adr')->setValue('value1;value2')->setParameter('type', ['work']);
     $builder = $specification->getBuilder();
     $builder->setFromVCardLine($vcardLine);
     $this->assertEquals('glurg', $builder->getGroup());
     $this->assertEquals(['work'], $builder->getTypes());
     $this->assertEquals(['Locality' => 'value1', 'Region' => 'value2'], $builder->getValue());
 }
 /**
  * @group default
  * @param \EVought\vCardTools\PropertySpecification $specification
  * @depends testSetAndBuild
  * @expectedException \DomainException
  */
 public function testSetFromVCardLineTooManyFields(PropertySpecification $specification)
 {
     $vcardLine = new VCardLine('4.0');
     $vcardLine->setName('adr')->setValue(';;;;;');
     /* @var StructuredPropertyBuilder $builder */
     $builder = $specification->getBuilder();
     $builder->setFromVCardLine($vcardLine);
 }
 /**
  * @group default
  */
 public function testGetBuilder()
 {
     $builder = $this->specification->getBuilder();
     $this->assertInstanceOf(__NAMESPACE__ . '\\SimplePropertyBuilder', $builder);
 }