Separate MediaWiki unit and integration tests
[lhc/web/wiklou.git] / tests / phpunit / unit / includes / libs / StaticArrayWriterTest.php
1 <?php
2 /**
3 * Copyright (C) 2018 Kunal Mehta <legoktm@member.fsf.org>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 */
20
21 use Wikimedia\StaticArrayWriter;
22
23 /**
24 * @covers \Wikimedia\StaticArrayWriter
25 */
26 class StaticArrayWriterTest extends PHPUnit\Framework\TestCase {
27 public function testCreate() {
28 $data = [
29 'foo' => 'bar',
30 'baz' => 'rawr',
31 "they're" => '"quoted properly"',
32 'nested' => [ 'elements', 'work' ],
33 'and' => [ 'these' => 'do too' ],
34 ];
35 $writer = new StaticArrayWriter();
36 $actual = $writer->create( $data, "Header\nWith\nNewlines" );
37 $expected = <<<PHP
38 <?php
39 // Header
40 // With
41 // Newlines
42 return [
43 'foo' => 'bar',
44 'baz' => 'rawr',
45 'they\'re' => '"quoted properly"',
46 'nested' => [
47 0 => 'elements',
48 1 => 'work',
49 ],
50 'and' => [
51 'these' => 'do too',
52 ],
53 ];
54
55 PHP;
56 $this->assertSame( $expected, $actual );
57 }
58 }