43021bb383c95db12bfa611515814828bc48058d
[yaffs-website] / vendor / consolidation / site-alias / tests / SiteAliasFileDiscoveryTest.php
1 <?php
2 namespace Consolidation\SiteAlias;
3
4 use PHPUnit\Framework\TestCase;
5
6 class SiteAliasFileDiscoveryTest extends TestCase
7 {
8     use FixtureFactory;
9     use FunctionUtils;
10
11     function setUp()
12     {
13         $this->sut = new SiteAliasFileDiscovery();
14     }
15
16     public function testSearchForSingleAliasFile()
17     {
18         $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/sites');
19
20         $path = $this->sut->findSingleSiteAliasFile('single');
21         $this->assertLocation('sites', $path);
22         $this->assertBasename('single.site.yml', $path);
23     }
24
25     public function testSearchForMissingSingleAliasFile()
26     {
27         $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/sites');
28
29         $path = $this->sut->findSingleSiteAliasFile('missing');
30         $this->assertFalse($path);
31     }
32
33     public function testFindAllLegacyAliasFiles()
34     {
35         $this->sut->addSearchLocation($this->fixturesDir() . '/sitealiases/legacy');
36
37         $result = $this->sut->findAllLegacyAliasFiles();
38         $paths = $this->simplifyToBasenamesWithLocation($result);
39         $this->assertEquals('legacy/aliases.drushrc.php,legacy/cc.aliases.drushrc.php,legacy/one.alias.drushrc.php,legacy/pantheon.aliases.drushrc.php,legacy/server.aliases.drushrc.php', implode(',', $paths));
40     }
41
42     protected function assertLocation($expected, $path)
43     {
44         $this->assertEquals($expected, basename(dirname($path)));
45     }
46
47     protected function assertBasename($expected, $path)
48     {
49         $this->assertEquals($expected, basename($path));
50     }
51
52     protected function simplifyToBasenamesWithLocation($result)
53     {
54         if (!is_array($result)) {
55             return $result;
56         }
57
58         $result = array_map(
59             function ($item) {
60                 return basename(dirname($item)) . '/' . basename($item);
61             }
62             ,
63             $result
64         );
65
66         sort($result);
67
68         return $result;
69     }
70 }