Skip to content

Commit 52d799c

Browse files
authored
Test the configuration manager (#83)
1 parent 4f234a4 commit 52d799c

File tree

3 files changed

+106
-5
lines changed

3 files changed

+106
-5
lines changed

Service/ConfigurationManager.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,17 @@ public function addConfiguration($name, Configuration $configuration)
3939
*
4040
* @return null|Configuration
4141
*/
42-
public function getConfiguration($name = 'default')
42+
public function getConfiguration($name = null)
4343
{
44+
if (empty($name)) {
45+
return $this->getConfiguration('default');
46+
}
47+
4448
if (isset($this->configuration[$name])) {
4549
return $this->configuration[$name];
4650
}
4751

48-
if ($name === 'default' || empty($name)) {
52+
if ($name === 'default') {
4953
$name = $this->getFirstName();
5054
if (isset($this->configuration[$name])) {
5155
return $this->configuration[$name];

Tests/Unit/Model/ConfigurationTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ class ConfigurationTest extends \PHPUnit_Framework_TestCase
1717
{
1818
public function testAccessors()
1919
{
20-
$key2Function = $this->getDefaultData();
20+
$key2Function = self::getDefaultData();
2121
$conf = new Configuration($key2Function);
2222

2323
foreach ($key2Function as $key => $value) {
@@ -31,7 +31,7 @@ public function testAccessors()
3131

3232
public function testGetPathsToTranslationFiles()
3333
{
34-
$data = $this->getDefaultData();
34+
$data = self::getDefaultData();
3535
$data['external_translations_dirs'] = ['foo', 'bar'];
3636
$data['output_dir'] = 'biz';
3737

@@ -43,7 +43,7 @@ public function testGetPathsToTranslationFiles()
4343
/**
4444
* @return array
4545
*/
46-
private function getDefaultData()
46+
public static function getDefaultData()
4747
{
4848
return [
4949
'name' => 'getName',
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the PHP Translation package.
5+
*
6+
* (c) PHP Translation team <tobias.nyholm@gmail.com>
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 Translation\Bundle\Tests\Unit\Service;
13+
14+
use Translation\Bundle\Model\Configuration;
15+
use Translation\Bundle\Service\ConfigurationManager;
16+
use Translation\Bundle\Tests\Unit\Model\ConfigurationTest;
17+
18+
class ConfigurationManagerTest extends \PHPUnit_Framework_TestCase
19+
{
20+
public function testGetConfigurationFirst()
21+
{
22+
$manager = new ConfigurationManager();
23+
$correctConfiguration = $this->createConfiguration(['name' => 'correct']);
24+
25+
$manager->addConfiguration('foo', $correctConfiguration);
26+
$manager->addConfiguration('bar', $this->createConfiguration());
27+
28+
$this->assertEquals($correctConfiguration, $manager->getConfiguration());
29+
$this->assertEquals($correctConfiguration, $manager->getConfiguration('default'));
30+
}
31+
32+
public function testGetConfigurationDefault()
33+
{
34+
$manager = new ConfigurationManager();
35+
$correctConfiguration = $this->createConfiguration(['name' => 'correct']);
36+
37+
$manager->addConfiguration('bar', $this->createConfiguration());
38+
$manager->addConfiguration('default', $correctConfiguration);
39+
40+
$this->assertEquals($correctConfiguration, $manager->getConfiguration());
41+
$this->assertEquals($correctConfiguration, $manager->getConfiguration('default'));
42+
$this->assertEquals($correctConfiguration, $manager->getConfiguration(''));
43+
$this->assertEquals($correctConfiguration, $manager->getConfiguration(null));
44+
}
45+
46+
public function testGetConfigurationMissing()
47+
{
48+
$manager = new ConfigurationManager();
49+
$correctConfiguration = $this->createConfiguration(['name' => 'correct']);
50+
51+
$manager->addConfiguration('bar', $this->createConfiguration());
52+
$manager->addConfiguration('default', $correctConfiguration);
53+
54+
$this->assertNull($manager->getConfiguration('missing'));
55+
}
56+
57+
public function testFirstName()
58+
{
59+
$manager = new ConfigurationManager();
60+
$manager->addConfiguration('foo', $this->createConfiguration());
61+
$manager->addConfiguration('bar', $this->createConfiguration());
62+
63+
$this->assertEquals('foo', $manager->getFirstName());
64+
}
65+
66+
public function testFirstNameEmpty()
67+
{
68+
$manager = new ConfigurationManager();
69+
70+
$this->assertNull($manager->getFirstName());
71+
}
72+
73+
public function testGetNames()
74+
{
75+
$manager = new ConfigurationManager();
76+
$manager->addConfiguration('foo', $this->createConfiguration());
77+
$manager->addConfiguration('bar', $this->createConfiguration());
78+
79+
$names = $manager->getNames();
80+
$this->assertEquals(['foo', 'bar'], $names);
81+
}
82+
83+
public function testGetNamesEmpty()
84+
{
85+
$manager = new ConfigurationManager();
86+
87+
$names = $manager->getNames();
88+
$this->assertEquals([], $names);
89+
}
90+
91+
private function createConfiguration($data = [])
92+
{
93+
$default = ConfigurationTest::getDefaultData();
94+
95+
return new Configuration(array_merge($default, $data));
96+
}
97+
}

0 commit comments

Comments
 (0)