Mercurial > hg > cmmr2012-drupal-site
comparison vendor/grasmash/yaml-expander/tests/phpunit/ExpanderTest.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
1 <?php | |
2 | |
3 namespace Grasmash\YamlExpander\Tests\Command; | |
4 | |
5 use Dflydev\DotAccessData\Data; | |
6 use Grasmash\YamlExpander\Expander; | |
7 use Grasmash\YamlExpander\Tests\TestBase; | |
8 use Symfony\Component\Yaml\Yaml; | |
9 | |
10 class ExpanderTest extends \PHPUnit_Framework_TestCase | |
11 { | |
12 | |
13 /** | |
14 * Tests Expander::expandArrayProperties(). | |
15 * | |
16 * @param string $filename | |
17 * @param array $reference_array | |
18 * | |
19 * @dataProvider providerYaml | |
20 */ | |
21 public function testExpandArrayProperties($filename, $reference_array) | |
22 { | |
23 $array = Yaml::parse(file_get_contents(__DIR__ . "/../resources/$filename")); | |
24 putenv("test=gomjabbar"); | |
25 $expanded = Expander::expandArrayProperties($array); | |
26 $this->assertEquals('gomjabbar', $expanded['env-test']); | |
27 $this->assertEquals('Frank Herbert 1965', $expanded['book']['copyright']); | |
28 $this->assertEquals('Paul Atreides', $expanded['book']['protaganist']); | |
29 $this->assertEquals('Dune by Frank Herbert', $expanded['summary']); | |
30 $this->assertEquals('${book.media.1}, hardcover', $expanded['available-products']); | |
31 $this->assertEquals('Dune', $expanded['product-name']); | |
32 $this->assertEquals(Yaml::dump($array['inline-array'], 0), $expanded['expand-array']); | |
33 | |
34 $expanded = Expander::expandArrayProperties($array, $reference_array); | |
35 $this->assertEquals('Dune Messiah, and others.', $expanded['sequels']); | |
36 $this->assertEquals('Dune Messiah', $expanded['book']['nested-reference']); | |
37 } | |
38 | |
39 /** | |
40 * Tests Expander::parse(). | |
41 * | |
42 * @param string $filename | |
43 * @param array $reference_array | |
44 * | |
45 * @dataProvider providerYaml | |
46 */ | |
47 public function testParse($filename, $reference_array) | |
48 { | |
49 $yaml_string = file_get_contents(__DIR__ . "/../resources/$filename"); | |
50 $expanded = Expander::parse($yaml_string); | |
51 $this->assertEquals('Frank Herbert 1965', $expanded['book']['copyright']); | |
52 $this->assertEquals('Paul Atreides', $expanded['book']['protaganist']); | |
53 $this->assertEquals('Dune by Frank Herbert', $expanded['summary']); | |
54 $this->assertEquals('${book.media.1}, hardcover', $expanded['available-products']); | |
55 | |
56 $expanded = Expander::parse($yaml_string, $reference_array); | |
57 $this->assertEquals('Dune Messiah, and others.', $expanded['sequels']); | |
58 $this->assertEquals('Dune Messiah', $expanded['book']['nested-reference']); | |
59 } | |
60 | |
61 /** | |
62 * @return array | |
63 * An array of values to test. | |
64 */ | |
65 public function providerYaml() | |
66 { | |
67 return [ | |
68 ['valid.yml', [ | |
69 'book' => [ | |
70 'sequel' => 'Dune Messiah' | |
71 ] | |
72 ]], | |
73 ]; | |
74 } | |
75 | |
76 /** | |
77 * Tests Expander::expandProperty(). | |
78 * | |
79 * @dataProvider providerTestExpandProperty | |
80 */ | |
81 public function testExpandProperty($array, $property_name, $unexpanded_string, $expected) | |
82 { | |
83 $data = new Data($array); | |
84 $expanded_value = Expander::expandProperty($property_name, $unexpanded_string, $data); | |
85 | |
86 $this->assertEquals($expected, $expanded_value); | |
87 } | |
88 | |
89 /** | |
90 * @return array | |
91 */ | |
92 public function providerTestExpandProperty() | |
93 { | |
94 return [ | |
95 [ ['author' => 'Frank Herbert'], 'author', '${author}', 'Frank Herbert' ], | |
96 [ ['book' => ['author' => 'Frank Herbert' ]], 'book.author', '${book.author}', 'Frank Herbert' ], | |
97 ]; | |
98 } | |
99 } |