Open Journal Systems  3.3.0
ServiceBuilderLoaderTest.php
1 <?php
2 
4 
6 
11 {
12  public function testBuildsServiceBuilders()
13  {
14  $arrayFactory = new ServiceBuilderLoader();
15 
16  $data = array(
17  'services' => array(
18  'abstract' => array(
19  'params' => array(
20  'access_key' => 'xyz',
21  'secret' => 'abc',
22  ),
23  ),
24  'foo' => array(
25  'extends' => 'abstract',
26  'params' => array(
27  'baz' => 'bar',
28  ),
29  ),
30  'mock' => array(
31  'extends' => 'abstract',
32  'params' => array(
33  'username' => 'foo',
34  'password' => 'baz',
35  'subdomain' => 'bar',
36  )
37  )
38  )
39  );
40 
41  $builder = $arrayFactory->load($data);
42 
43  // Ensure that services were parsed
44  $this->assertTrue(isset($builder['mock']));
45  $this->assertTrue(isset($builder['abstract']));
46  $this->assertTrue(isset($builder['foo']));
47  $this->assertFalse(isset($builder['jimmy']));
48  }
49 
55  {
56  $arrayFactory = new ServiceBuilderLoader();
57 
58  $data = array(
59  'services' => array(
60  'foo' => array(
61  'extends' => 'abstract'
62  )
63  )
64  );
65 
66  $builder = $arrayFactory->load($data);
67  }
68 
70  {
71  $arrayFactory = new ServiceBuilderLoader();
72 
73  $data = array(
74  'services' => array(
75  'foo' => array(
76  'params' => array(
77  'foo' => 'baz',
78  'bar' => 'boo'
79  )
80  )
81  )
82  );
83 
84  $builder = $arrayFactory->load($data, array(
85  'bar' => 'jar',
86  'far' => 'car'
87  ));
88 
89  $compiled = json_decode($builder->serialize(), true);
90  $this->assertEquals(array(
91  'foo' => 'baz',
92  'bar' => 'jar',
93  'far' => 'car'
94  ), $compiled['foo']['params']);
95  }
96 
98  {
99  $arrayFactory = new ServiceBuilderLoader();
100  $arrayFactory->load(array(
101  'services' => array(
102  'too' => array('extends' => 'ball'),
103  'ball' => array('extends' => 'too'),
104  )
105  ));
106  }
107 
108  public function configProvider()
109  {
110  $foo = array(
111  'extends' => 'bar',
112  'class' => 'stdClass',
113  'params' => array('a' => 'test', 'b' => '456')
114  );
115 
116  return array(
117  array(
118  // Does not extend the existing `foo` service but overwrites it
119  array(
120  'services' => array(
121  'foo' => $foo,
122  'bar' => array('params' => array('baz' => '123'))
123  )
124  ),
125  array(
126  'services' => array(
127  'foo' => array('class' => 'Baz')
128  )
129  ),
130  array(
131  'services' => array(
132  'foo' => array('class' => 'Baz'),
133  'bar' => array('params' => array('baz' => '123'))
134  )
135  )
136  ),
137  array(
138  // Extends the existing `foo` service
139  array(
140  'services' => array(
141  'foo' => $foo,
142  'bar' => array('params' => array('baz' => '123'))
143  )
144  ),
145  array(
146  'services' => array(
147  'foo' => array(
148  'extends' => 'foo',
149  'params' => array('b' => '123', 'c' => 'def')
150  )
151  )
152  ),
153  array(
154  'services' => array(
155  'foo' => array(
156  'extends' => 'bar',
157  'class' => 'stdClass',
158  'params' => array('a' => 'test', 'b' => '123', 'c' => 'def')
159  ),
160  'bar' => array('params' => array('baz' => '123'))
161  )
162  )
163  )
164  );
165  }
166 
170  public function testCombinesConfigs($a, $b, $c)
171  {
172  $l = new ServiceBuilderLoader();
173  $m = new \ReflectionMethod($l, 'mergeData');
174  $m->setAccessible(true);
175  $this->assertEquals($c, $m->invoke($l, $a, $b));
176  }
177 }
Guzzle\Tests\Service\Builder\ServiceBuilderLoaderTest
Definition: ServiceBuilderLoaderTest.php:10
Guzzle\Tests\GuzzleTestCase
Definition: GuzzleTestCase.php:22
Guzzle\Tests\Service\Builder
Definition: ServiceBuilderLoaderTest.php:3
Guzzle\Tests\Service\Builder\ServiceBuilderLoaderTest\testCombinesConfigs
testCombinesConfigs($a, $b, $c)
Definition: ServiceBuilderLoaderTest.php:170
Guzzle\Tests\Service\Builder\ServiceBuilderLoaderTest\testAllowsGlobalParameterOverrides
testAllowsGlobalParameterOverrides()
Definition: ServiceBuilderLoaderTest.php:69
Guzzle\Tests\Service\Builder\ServiceBuilderLoaderTest\tstDoesNotErrorOnCircularReferences
tstDoesNotErrorOnCircularReferences()
Definition: ServiceBuilderLoaderTest.php:97
Guzzle\Tests\Service\Builder\ServiceBuilderLoaderTest\configProvider
configProvider()
Definition: ServiceBuilderLoaderTest.php:108
Guzzle\Service\Builder\ServiceBuilderLoader
Definition: ServiceBuilderLoader.php:11
Guzzle\Tests\Service\Builder\ServiceBuilderLoaderTest\testBuildsServiceBuilders
testBuildsServiceBuilders()
Definition: ServiceBuilderLoaderTest.php:12
Guzzle\Tests\Service\Builder\ServiceBuilderLoaderTest\testThrowsExceptionWhenExtendingNonExistentService
testThrowsExceptionWhenExtendingNonExistentService()
Definition: ServiceBuilderLoaderTest.php:54