MergeYamlTest.php in Database Sanitize 7
File
vendor/edisonlabs/merge-yaml/tests/src/Unit/MergeYamlTest.php
View source
<?php
namespace EdisonLabs\MergeYaml\Unit;
use EdisonLabs\MergeYaml\MergeYaml;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Yaml\Yaml;
class MergeYamlTest extends TestCase {
public $outputDir;
public $fileNamePatterns;
public $sourcePaths;
protected function setUp() {
$this->fileNamePatterns = [
'test',
];
$this->sourcePaths = [
dirname(__FILE__) . '/../../assets',
];
$this->outputDir = '/tmp/merge-yaml';
}
protected function tearDown() {
$expectedMergedFiles = $this
->getExpectedMergedFiles();
foreach ($expectedMergedFiles as $file) {
if (file_exists($file)) {
unlink($file);
}
}
}
public function testMergeYaml() {
$mergeYaml = new MergeYaml($this->fileNamePatterns, $this->sourcePaths, $this->outputDir);
$mergeYaml
->prepareOutputDir($this->outputDir);
$this
->assertDirectoryExists($this->outputDir);
$ymlFilesPaths = $mergeYaml
->getYamlFiles();
$this
->assertNotEmpty($ymlFilesPaths);
$this
->assertCount(1, $ymlFilesPaths);
$this
->assertArrayHasKey('test', $ymlFilesPaths);
$this
->assertCount(2, $ymlFilesPaths['test']);
$mergedYmlContent = $mergeYaml
->getMergedYmlContent($ymlFilesPaths['test']);
$parsedMergedYmlContent = Yaml::parse($mergedYmlContent);
$this
->assertArrayHasKey('item_1', $parsedMergedYmlContent);
$this
->assertArrayHasKey('item_2', $parsedMergedYmlContent);
$mergeYaml
->createMergeFiles();
$expectedMergedFiles = $this
->getExpectedMergedFiles();
foreach ($expectedMergedFiles as $expectedMergedFile) {
$this
->assertFileExists($expectedMergedFile);
$mergedYmlFileContent = file_get_contents($expectedMergedFile);
$this
->assertNotEmpty($mergedYmlFileContent);
$parsedMergedYmlFile = Yaml::parse($mergedYmlFileContent);
$this
->assertArrayHasKey('item_1', $parsedMergedYmlFile);
$this
->assertArrayHasKey('description', $parsedMergedYmlFile['item_1']);
$this
->assertArrayHasKey('value', $parsedMergedYmlFile['item_1']);
$this
->assertEquals('Item 1 description', $parsedMergedYmlFile['item_1']['description']);
$this
->assertEquals('Item 1 value', $parsedMergedYmlFile['item_1']['value']);
$this
->assertArrayHasKey('item_2', $parsedMergedYmlFile);
$this
->assertArrayHasKey('description', $parsedMergedYmlFile['item_2']);
$this
->assertArrayHasKey('value', $parsedMergedYmlFile['item_2']);
$this
->assertEquals('Item 2 description', $parsedMergedYmlFile['item_2']['description']);
$this
->assertEquals('Item 2 value', $parsedMergedYmlFile['item_2']['value']);
}
}
public function getExpectedMergedFiles() {
$expectedMergedFiles = [];
foreach ($this->fileNamePatterns as $fileNamePattern) {
$expectedMergedFiles[] = $this->outputDir . '/' . $fileNamePattern . '.merge.yml';
}
return $expectedMergedFiles;
}
}