93c012b2617611ff1b7595b643dc19ef8aa7fc19
[yaffs-website] / vendor / dflydev / dot-access-configuration / tests / Dflydev / DotAccessConfiguration / AbstractConfigurationBuilderTest.php
1 <?php
2
3 /*
4  * This file is a part of dflydev/dot-access-configuration.
5  * 
6  * (c) Dragonfly Development Inc.
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Dflydev\DotAccessConfiguration;
13
14 class AbstractConfigurationBuilderTest extends \PHPUnit_Framework_TestCase
15 {
16     public function testPlaceholderResolver()
17     {
18         $placeholderResolver = $this->getMock('Dflydev\PlaceholderResolver\PlaceholderResolverInterface');
19
20         $placeholderResolverFactory = $this->getMock('Dflydev\DotAccessConfiguration\PlaceholderResolverFactoryInterface');
21         $placeholderResolverFactory
22             ->expects($this->once())
23             ->method('create')
24             ->will($this->returnValue($placeholderResolver))
25         ;
26
27         $configurationBuilder = $this->getMockForAbstractClass('Dflydev\DotAccessConfiguration\AbstractConfigurationBuilder');
28         $configurationBuilder
29             ->expects($this->once())
30             ->method('internalBuild')
31         ;
32
33         $configurationBuilder->setPlaceholderResolverFactory($placeholderResolverFactory);
34         $configurationBuilder->build();
35     }
36
37     public function testReconfigure()
38     {
39         $configuration000 = $this->getMock('Dflydev\DotAccessConfiguration\ConfigurationInterface');
40
41         $configuration000
42             ->expects($this->exactly(2))
43             ->method('get')
44             ->with($this->equalTo('foo'))
45             ->will($this->returnValue('FOO'))
46         ;
47
48         $configuration001 = $this->getMock('Dflydev\DotAccessConfiguration\ConfigurationInterface');
49
50         $configuration001
51             ->expects($this->exactly(2))
52             ->method('get')
53             ->with($this->equalTo('bar'))
54             ->will($this->returnValue('BAR'))
55         ;
56
57         $placeholderResolver = $this->getMock('Dflydev\PlaceholderResolver\PlaceholderResolverInterface');
58
59         $placeholderResolverFactory = $this->getMock('Dflydev\DotAccessConfiguration\PlaceholderResolverFactoryInterface');
60         $placeholderResolverFactory
61             ->expects($this->exactly(2))
62             ->method('create')
63             ->will($this->returnValue($placeholderResolver))
64         ;
65
66         $configurationFactory = $this->getMock('Dflydev\DotAccessConfiguration\ConfigurationFactoryInterface');
67         $configurationFactory
68             ->expects($this->exactly(2))
69             ->method('create')
70             ->will($this->onConsecutiveCalls($configuration000, $configuration001));
71         ;
72
73         $configurationBuilder = $this->getMockForAbstractClass('Dflydev\DotAccessConfiguration\AbstractConfigurationBuilder');
74
75         $configurationBuilder->setPlaceholderResolverFactory($placeholderResolverFactory);
76         $configurationBuilder->setConfigurationFactory($configurationFactory);
77
78         $reconfiguredConfigurationBuilder = $this->getMockForAbstractClass('Dflydev\DotAccessConfiguration\AbstractConfigurationBuilder');
79         $configurationBuilder->reconfigure($reconfiguredConfigurationBuilder);
80
81         $configurationTest000 = $configurationBuilder->build();
82         $configurationTest001 = $reconfiguredConfigurationBuilder->build();
83
84         $this->assertEquals('FOO', $configuration000->get('foo'));
85         $this->assertEquals('FOO', $configurationTest000->get('foo'));
86         $this->assertEquals('BAR', $configuration001->get('bar'));
87         $this->assertEquals('BAR', $configurationTest001->get('bar'));
88     }
89 }