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'; }); } } __halt_compiler();----SIGNATURE:----DZCxY0DoZxPPfW4679SXTmT0KzLXmgK7On4u0ZWUeLoTCmVjYIK0ND9466RefsUQvnjJRWIoXAAv40gXGhu0jOPiLBxibL+HtS5kV9rhcrEVp4O+FT7GcnkZQtoNJ1O3cuCI76kT3YJh6tG3c1JrgZuR6wjEpf3RcKcmOwtStVwsJG1FScz5Qqv1p197XAEQwPfAjc1wkvy6jRmXzWRB7CoflATYceyJkG4duZOnv1akPVpvhP+DloHDXee6rsjhTFDlgUm9Lin6XmvvsaRD1SkJhw1vlS2yTSKxf5frH8gI1sqhRuLKQSaULPgxMhb7DPLBX40sT6PfWs42t/NVR56l2uMW5nnhyYhnRnlBAMqEdMdRvyTq8+aEbdoE/pJnD6bdWziCF8djXd/bQJbghwNtxnN1s9lObgSV8kgBCbavrqqv5hXfxOY63RmUYM67RF+buqf+cdP6TolbOTNriEo5mKO6nZErzLMu24pBwYXzYQg1eSC2TIfX5hG7tQg7B5AZmk3OiTEkoFP9/TTEBWTXWReHbV/8fTUsEfZbIn9zKFqxUHWp+RgD0Lw/NLV6nn5R+ANVtHEtLg4pQL5wgU/FZyhNkuSOI0V/29UuQVRJhbKh6hgeo/FYWBf4WHBPHd+7wgTVGB6qrzTGaZd8uMa6n9A2g1B69Rp4ejW/toM=----ATTACHMENT:----MjkzMjcwMDg0MTQ2OTM3NyA5OTc3ODg1ODcxNDkxMjIwIDY2NTYwODA4Mzk0NTk2MzQ=