|
- <?php
-
- namespace Faker\Test;
-
- use Faker\Generator;
-
- class GeneratorTest extends \PHPUnit_Framework_TestCase
- {
- public function testAddProviderGivesPriorityToNewlyAddedProvider()
- {
- $generator = new Generator;
- $generator->addProvider(new FooProvider());
- $generator->addProvider(new BarProvider());
- $this->assertEquals('barfoo', $generator->format('fooFormatter'));
- }
-
- public function testGetFormatterReturnsCallable()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertTrue(is_callable($generator->getFormatter('fooFormatter')));
- }
-
- public function testGetFormatterReturnsCorrectFormatter()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $expected = array($provider, 'fooFormatter');
- $this->assertEquals($expected, $generator->getFormatter('fooFormatter'));
- }
-
- /**
- * @expectedException InvalidArgumentException
- */
- public function testGetFormatterThrowsExceptionOnIncorrectProvider()
- {
- $generator = new Generator;
- $generator->getFormatter('fooFormatter');
- }
-
- /**
- * @expectedException InvalidArgumentException
- */
- public function testGetFormatterThrowsExceptionOnIncorrectFormatter()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $generator->getFormatter('barFormatter');
- }
-
- public function testFormatCallsFormatterOnProvider()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('foobar', $generator->format('fooFormatter'));
- }
-
- public function testFormatTransfersArgumentsToFormatter()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('bazfoo', $generator->format('fooFormatterWithArguments', array('foo')));
- }
-
- public function testParseReturnsSameStringWhenItContainsNoCurlyBraces()
- {
- $generator = new Generator();
- $this->assertEquals('fooBar#?', $generator->parse('fooBar#?'));
- }
-
- public function testParseReturnsStringWithTokensReplacedByFormatters()
- {
- $generator = new Generator();
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('This is foobar a text with foobar', $generator->parse('This is {{fooFormatter}} a text with {{ fooFormatter }}'));
- }
-
- public function testMagicGetCallsFormat()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('foobar', $generator->fooFormatter);
- }
-
- public function testMagicCallCallsFormat()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('foobar', $generator->fooFormatter());
- }
-
- public function testMagicCallCallsFormatWithArguments()
- {
- $generator = new Generator;
- $provider = new FooProvider();
- $generator->addProvider($provider);
- $this->assertEquals('bazfoo', $generator->fooFormatterWithArguments('foo'));
- }
-
- }
-
- class FooProvider
- {
- public function fooFormatter()
- {
- return 'foobar';
- }
-
- public function fooFormatterWithArguments($value = '')
- {
- return 'baz' . $value;
- }
- }
-
- class BarProvider
- {
- public function fooFormatter()
- {
- return 'barfoo';
- }
- }
|