X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fsymfony%2Fdependency-injection%2FTests%2FEnvVarProcessorTest.php;fp=vendor%2Fsymfony%2Fdependency-injection%2FTests%2FEnvVarProcessorTest.php;h=b1ee044e9e5c088bf65b94c9566a7396c2c70f25;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/vendor/symfony/dependency-injection/Tests/EnvVarProcessorTest.php b/vendor/symfony/dependency-injection/Tests/EnvVarProcessorTest.php new file mode 100644 index 000000000..b1ee044e9 --- /dev/null +++ b/vendor/symfony/dependency-injection/Tests/EnvVarProcessorTest.php @@ -0,0 +1,304 @@ +setParameter('env(foo)', $value); + $container->compile(); + + $processor = new EnvVarProcessor($container); + + $result = $processor->getEnv('string', 'foo', function () { + $this->fail('Should not be called'); + }); + + $this->assertSame($processed, $result); + } + + public function validStrings() + { + return array( + array('hello', 'hello'), + array('true', 'true'), + array('false', 'false'), + array('null', 'null'), + array('1', '1'), + array('0', '0'), + array('1.1', '1.1'), + array('1e1', '1e1'), + ); + } + + /** + * @dataProvider validBools + */ + public function testGetEnvBool($value, $processed) + { + $processor = new EnvVarProcessor(new Container()); + + $result = $processor->getEnv('bool', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return $value; + }); + + $this->assertSame($processed, $result); + } + + public function validBools() + { + return array( + array('true', true), + array('false', false), + array('null', false), + array('1', true), + array('0', false), + array('1.1', true), + array('1e1', true), + ); + } + + /** + * @dataProvider validInts + */ + public function testGetEnvInt($value, $processed) + { + $processor = new EnvVarProcessor(new Container()); + + $result = $processor->getEnv('int', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return $value; + }); + + $this->assertSame($processed, $result); + } + + public function validInts() + { + return array( + array('1', 1), + array('1.1', 1), + array('1e1', 10), + ); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @expectedExceptionMessage Non-numeric env var + * @dataProvider invalidInts + */ + public function testGetEnvIntInvalid($value) + { + $processor = new EnvVarProcessor(new Container()); + + $processor->getEnv('int', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return $value; + }); + } + + public function invalidInts() + { + return array( + array('foo'), + array('true'), + array('null'), + ); + } + + /** + * @dataProvider validFloats + */ + public function testGetEnvFloat($value, $processed) + { + $processor = new EnvVarProcessor(new Container()); + + $result = $processor->getEnv('float', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return $value; + }); + + $this->assertSame($processed, $result); + } + + public function validFloats() + { + return array( + array('1', 1.0), + array('1.1', 1.1), + array('1e1', 10.0), + ); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @expectedExceptionMessage Non-numeric env var + * @dataProvider invalidFloats + */ + public function testGetEnvFloatInvalid($value) + { + $processor = new EnvVarProcessor(new Container()); + + $processor->getEnv('float', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return $value; + }); + } + + public function invalidFloats() + { + return array( + array('foo'), + array('true'), + array('null'), + ); + } + + /** + * @dataProvider validConsts + */ + public function testGetEnvConst($value, $processed) + { + $processor = new EnvVarProcessor(new Container()); + + $result = $processor->getEnv('const', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return $value; + }); + + $this->assertSame($processed, $result); + } + + public function validConsts() + { + return array( + array('Symfony\Component\DependencyInjection\Tests\EnvVarProcessorTest::TEST_CONST', self::TEST_CONST), + array('E_ERROR', E_ERROR), + ); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @expectedExceptionMessage undefined constant + * @dataProvider invalidConsts + */ + public function testGetEnvConstInvalid($value) + { + $processor = new EnvVarProcessor(new Container()); + + $processor->getEnv('const', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return $value; + }); + } + + public function invalidConsts() + { + return array( + array('Symfony\Component\DependencyInjection\Tests\EnvVarProcessorTest::UNDEFINED_CONST'), + array('UNDEFINED_CONST'), + ); + } + + public function testGetEnvBase64() + { + $processor = new EnvVarProcessor(new Container()); + + $result = $processor->getEnv('base64', 'foo', function ($name) { + $this->assertSame('foo', $name); + + return base64_encode('hello'); + }); + + $this->assertSame('hello', $result); + } + + public function testGetEnvJson() + { + $processor = new EnvVarProcessor(new Container()); + + $result = $processor->getEnv('json', 'foo', function ($name) { + $this->assertSame('foo', $name); + + return json_encode(array(1)); + }); + + $this->assertSame(array(1), $result); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @expectedExceptionMessage Syntax error + */ + public function testGetEnvInvalidJson() + { + $processor = new EnvVarProcessor(new Container()); + + $processor->getEnv('json', 'foo', function ($name) { + $this->assertSame('foo', $name); + + return 'invalid_json'; + }); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @expectedExceptionMessage Invalid JSON env var + * @dataProvider otherJsonValues + */ + public function testGetEnvJsonOther($value) + { + $processor = new EnvVarProcessor(new Container()); + + $processor->getEnv('json', 'foo', function ($name) use ($value) { + $this->assertSame('foo', $name); + + return json_encode($value); + }); + } + + public function otherJsonValues() + { + return array( + array(1), + array(1.1), + array(true), + array(false), + ); + } + + /** + * @expectedException \Symfony\Component\DependencyInjection\Exception\RuntimeException + * @expectedExceptionMessage Unsupported env var prefix + */ + public function testGetEnvUnknown() + { + $processor = new EnvVarProcessor(new Container()); + + $processor->getEnv('unknown', 'foo', function ($name) { + $this->assertSame('foo', $name); + + return 'foo'; + }); + } +}