OptionsResolver test coverage

This commit is contained in:
Michal Piotrowski 2015-11-03 19:20:21 +01:00 committed by Tobias Schultze
parent 6f1d506824
commit 185950c5d4
1 changed files with 17 additions and 27 deletions

View File

@ -499,27 +499,28 @@ class OptionsResolver2Dot6Test extends \PHPUnit_Framework_TestCase
}
/**
* @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
* @expectedExceptionMessage The option "foo" with value 42 is expected to be of type "string", but is of type "integer".
* @dataProvider provideInvalidTypes
*/
public function testResolveFailsIfInvalidType()
public function testResolveFailsIfInvalidType($actualType, $allowedType, $exceptionMessage)
{
$this->resolver->setDefined('foo');
$this->resolver->setAllowedTypes('foo', 'string');
$this->resolver->resolve(array('foo' => 42));
$this->resolver->setDefined('option');
$this->resolver->setAllowedTypes('option', $allowedType);
$this->setExpectedException('Symfony\Component\OptionsResolver\Exception\InvalidOptionsException', $exceptionMessage);
$this->resolver->resolve(array('option' => $actualType));
}
/**
* @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
* @expectedExceptionMessage The option "foo" with value null is expected to be of type "string", but is of type "NULL".
*/
public function testResolveFailsIfInvalidTypeIsNull()
public function provideInvalidTypes()
{
$this->resolver->setDefault('foo', null);
$this->resolver->setAllowedTypes('foo', 'string');
$this->resolver->resolve();
return array(
array(true, 'string', 'The option "option" with value true is expected to be of type "string", but is of type "boolean".'),
array(false, 'string', 'The option "option" with value false is expected to be of type "string", but is of type "boolean".'),
array(fopen(__FILE__, 'r'), 'string', 'The option "option" with value resource is expected to be of type "string", but is of type "resource".'),
array(array(), 'string', 'The option "option" with value array is expected to be of type "string", but is of type "array".'),
array(new OptionsResolver(), 'string', 'The option "option" with value Symfony\Component\OptionsResolver\OptionsResolver is expected to be of type "string", but is of type "Symfony\Component\OptionsResolver\OptionsResolver".'),
array(42, 'string', 'The option "option" with value 42 is expected to be of type "string", but is of type "integer".'),
array(null, 'string', 'The option "option" with value null is expected to be of type "string", but is of type "NULL".'),
array('bar', '\stdClass', 'The option "option" with value "bar" is expected to be of type "\stdClass", but is of type "string".'),
);
}
public function testResolveSucceedsIfValidType()
@ -550,17 +551,6 @@ class OptionsResolver2Dot6Test extends \PHPUnit_Framework_TestCase
$this->assertNotEmpty($this->resolver->resolve());
}
/**
* @expectedException \Symfony\Component\OptionsResolver\Exception\InvalidOptionsException
*/
public function testResolveFailsIfNotInstanceOfClass()
{
$this->resolver->setDefault('foo', 'bar');
$this->resolver->setAllowedTypes('foo', '\stdClass');
$this->resolver->resolve();
}
public function testResolveSucceedsIfInstanceOfClass()
{
$this->resolver->setDefault('foo', new \stdClass());