4 * This file is a part of dflydev/dot-access-configuration.
6 * (c) Dragonfly Development Inc.
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
12 namespace Dflydev\DotAccessConfiguration;
14 class AbstractConfigurationBuilderTest extends \PHPUnit_Framework_TestCase
16 public function testPlaceholderResolver()
18 $placeholderResolver = $this->getMock('Dflydev\PlaceholderResolver\PlaceholderResolverInterface');
20 $placeholderResolverFactory = $this->getMock('Dflydev\DotAccessConfiguration\PlaceholderResolverFactoryInterface');
21 $placeholderResolverFactory
22 ->expects($this->once())
24 ->will($this->returnValue($placeholderResolver))
27 $configurationBuilder = $this->getMockForAbstractClass('Dflydev\DotAccessConfiguration\AbstractConfigurationBuilder');
29 ->expects($this->once())
30 ->method('internalBuild')
33 $configurationBuilder->setPlaceholderResolverFactory($placeholderResolverFactory);
34 $configurationBuilder->build();
37 public function testReconfigure()
39 $configuration000 = $this->getMock('Dflydev\DotAccessConfiguration\ConfigurationInterface');
42 ->expects($this->exactly(2))
44 ->with($this->equalTo('foo'))
45 ->will($this->returnValue('FOO'))
48 $configuration001 = $this->getMock('Dflydev\DotAccessConfiguration\ConfigurationInterface');
51 ->expects($this->exactly(2))
53 ->with($this->equalTo('bar'))
54 ->will($this->returnValue('BAR'))
57 $placeholderResolver = $this->getMock('Dflydev\PlaceholderResolver\PlaceholderResolverInterface');
59 $placeholderResolverFactory = $this->getMock('Dflydev\DotAccessConfiguration\PlaceholderResolverFactoryInterface');
60 $placeholderResolverFactory
61 ->expects($this->exactly(2))
63 ->will($this->returnValue($placeholderResolver))
66 $configurationFactory = $this->getMock('Dflydev\DotAccessConfiguration\ConfigurationFactoryInterface');
68 ->expects($this->exactly(2))
70 ->will($this->onConsecutiveCalls($configuration000, $configuration001));
73 $configurationBuilder = $this->getMockForAbstractClass('Dflydev\DotAccessConfiguration\AbstractConfigurationBuilder');
75 $configurationBuilder->setPlaceholderResolverFactory($placeholderResolverFactory);
76 $configurationBuilder->setConfigurationFactory($configurationFactory);
78 $reconfiguredConfigurationBuilder = $this->getMockForAbstractClass('Dflydev\DotAccessConfiguration\AbstractConfigurationBuilder');
79 $configurationBuilder->reconfigure($reconfiguredConfigurationBuilder);
81 $configurationTest000 = $configurationBuilder->build();
82 $configurationTest001 = $reconfiguredConfigurationBuilder->build();
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'));