cba293926eb48c3bc860f48cfb5752f7a5afa3db
[lhc/web/wiklou.git] / tests / phpunit / includes / libs / DeferredStringifierTest.php
1 <?php
2
3 class DeferredStringifierTest extends PHPUnit_Framework_TestCase {
4
5 /**
6 * @covers DeferredStringifier
7 * @dataProvider provideToString
8 */
9 public function testToString( $params, $expected ) {
10 $class = new ReflectionClass( 'DeferredStringifier' );
11 $ds = $class->newInstanceArgs( $params );
12 $this->assertEquals( $expected, (string)$ds );
13 }
14
15 public static function provideToString() {
16 return [
17 // No args
18 [
19 [
20 function () {
21 return 'foo';
22 }
23 ],
24 'foo'
25 ],
26 // Has args
27 [
28 [
29 function ( $i ) {
30 return $i;
31 },
32 'bar'
33 ],
34 'bar'
35 ],
36 ];
37 }
38
39 /**
40 * Verify that the callback is not called if
41 * it is never converted to a string
42 */
43 public function testCallbackNotCalled() {
44 $ds = new DeferredStringifier( function () {
45 throw new Exception( 'This should not be reached!' );
46 } );
47 // No exception was thrown
48 $this->assertTrue( true );
49 }
50 }