mirror of
https://github.com/fzaninotto/Faker.git
synced 2025-03-27 18:52:43 +01:00
116 lines
3.0 KiB
PHP
116 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Faker\Test;
|
|
|
|
require_once __DIR__ . '/../src/Generator.php';
|
|
|
|
use Faker\Generator;
|
|
|
|
class GeneratorTest extends \PHPUnit_Framework_TestCase
|
|
{
|
|
public function testGetFormatterReturnsCallable()
|
|
{
|
|
$generator = new Generator;
|
|
$provider = new FooProvider();
|
|
$generator->addProvider($provider);
|
|
$expected = array($provider, 'fooFormatter');
|
|
$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;
|
|
}
|
|
} |