Skip to content

Commit 7214a5f

Browse files
committed
Fix tests
1 parent 01fab72 commit 7214a5f

File tree

5 files changed

+34
-79
lines changed

5 files changed

+34
-79
lines changed

DependencyInjection/Configuration.php

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,11 @@ public function getConfigTreeBuilder()
4646
->end()
4747
->enumNode('auth_method')
4848
->defaultValue(Client::AUTH_HTTP_TOKEN)
49-
->values(array(Client::AUTH_URL_TOKEN, Client::AUTH_HTTP_TOKEN, 'oauth_token'))
49+
->values(array(Client::AUTH_URL_TOKEN, Client::AUTH_HTTP_TOKEN, Client::AUTH_OAUTH_TOKEN))
5050
->end()
5151
->scalarNode('sudo')->defaultValue(null)->end()
5252
->scalarNode('alias')->defaultValue(null)->end()
5353
->scalarNode('http_client')->defaultValue(null)->end()
54-
->arrayNode('options')
55-
->addDefaultsIfNotSet()
56-
->children()
57-
->integerNode('timeout')->min(0)->defaultValue(60)->end()
58-
->scalarNode('user_agent')->defaultValue(null)->end()
59-
->end()
6054
->end()
6155
->end()
6256
->end()

DependencyInjection/Zeichen32GitLabApiExtension.php

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ public function load(array $configs, ContainerBuilder $container)
3636
$loader->load('services.xml');
3737

3838
// Create default Buzz HttpClient
39-
$httpClient = new Definition('Buzz\Client\Curl');
40-
$httpClient->setPublic(false);
41-
$container->setDefinition('zeichen32_gitlabapi.http.curl', $httpClient);
39+
// $httpClient = new Definition('Buzz\Client\Curl');
40+
// $httpClient->setPublic(false);
41+
// $container->setDefinition('zeichen32_gitlabapi.http.curl', $httpClient);
4242

4343
$this->addClients($config['clients'], $container);
4444
}
@@ -56,8 +56,7 @@ private function addClients(array $clients, ContainerBuilder $container) {
5656
$client['auth_method'],
5757
$client['sudo'],
5858
$client['alias'],
59-
null === $client['http_client'] ? 'zeichen32_gitlabapi.http.curl' : $client['http_client'],
60-
$client['options'],
59+
$client['http_client'],
6160
$container
6261
);
6362
}
@@ -81,28 +80,20 @@ private function setDefaultClient($name, ContainerBuilder $container) {
8180
* @param $authMethod
8281
* @param $sudo
8382
* @param $alias
84-
* @param array $options
8583
* @param ContainerBuilder $container
8684
*/
87-
private function createClient($name, $url, $token, $authMethod, $sudo, $alias, $httpClient, array $options = array(), ContainerBuilder $container) {
88-
89-
// Create alias for Buzz HttpClient
90-
$container->setAlias(sprintf('zeichen32_gitlabapi.http.client.%s', $name), $httpClient);
91-
92-
$definition = new Definition('%zeichen32_gitlabapi.client.class%', array(
93-
$url, new Reference(sprintf('zeichen32_gitlabapi.http.client.%s', $name))
94-
));
95-
96-
// Set Client Options
97-
if(count($options) > 0) {
98-
foreach($options as $key => $value) {
99-
if(null !== $value) {
100-
$definition->addMethodCall('setOption', array(
101-
$key,
102-
$value
103-
));
104-
}
105-
}
85+
private function createClient($name, $url, $token, $authMethod, $sudo, $alias, $httpClient, ContainerBuilder $container) {
86+
// Create new client if needed
87+
if (null !== $httpClient) {
88+
$container->setAlias(sprintf('zeichen32_gitlabapi.http.client.%s', $name), $httpClient);
89+
90+
$definition = new Definition('%zeichen32_gitlabapi.client.class%');
91+
$definition->addArgument(new Reference($httpClient));
92+
$definition->setFactory(array('Gitlab\Client', 'createWithHttpClient'));
93+
} else {
94+
$definition = new Definition('%zeichen32_gitlabapi.client.class%');
95+
$definition->addArgument($url);
96+
$definition->setFactory(array('Gitlab\Client', 'create'));
10697
}
10798

10899
// Call authenticate method

Tests/DependencyInjection/Zeichen32GitLabApiExtensionTest.php

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -81,33 +81,6 @@ public function testWrongAuthMethod() {
8181
$this->extension->load($config, $this->container);
8282
}
8383

84-
public function testOptions() {
85-
$config = array(
86-
'zeichen32_git_lab_api' => array('clients' => array(
87-
'firstclient' => array(
88-
'token' => '12345',
89-
'url' => 'http://example.org/api/v3/',
90-
'auth_method' => Client::AUTH_URL_TOKEN,
91-
'sudo' => '1',
92-
'options' => array(
93-
'timeout' => 120,
94-
'user_agent' => 'TestAgent',
95-
)
96-
),
97-
)),
98-
);
99-
100-
$this->extension->load($config, $this->container);
101-
$this->assertTrue($this->container->has('zeichen32_gitlabapi.client.default'));
102-
$this->assertTrue($this->container->has('gitlab_api'));
103-
104-
/** @var Client $client */
105-
$client = $this->container->get('zeichen32_gitlabapi.client.default');
106-
$this->assertEquals(120, $client->getOption('timeout'));
107-
$this->assertEquals('TestAgent', $client->getOption('user_agent'));
108-
109-
}
110-
11184
public function testClientAlias() {
11285
$config = array(
11386
'zeichen32_git_lab_api' => array('clients' => array(
@@ -157,20 +130,23 @@ public function testHttpClients() {
157130
)),
158131
);
159132

160-
$httpClient = new Definition('Buzz\Client\FileGetContents');
161-
$httpClient->setPublic(false);
162-
$this->container->setDefinition('http.client', $httpClient);
133+
$httpClient = $this->getMock('Http\Client\HttpClient');
134+
$httpClient->method('foo')->willReturn(true);
135+
$this->container->setDefinition('http.client', new Definition($httpClient));
163136

164137
$this->extension->load($config, $this->container);
165138

139+
$firstClient = $this->container->get('zeichen32_gitlabapi.client.firstclient');
140+
$secondClient = $this->container->get('zeichen32_gitlabapi.client.secondclient');
141+
166142
$this->assertInstanceOf(
167-
'Buzz\Client\Curl',
168-
$this->container->get('zeichen32_gitlabapi.http.client.firstclient')
143+
'Http\Client\HttpClient',
144+
$firstClient->getHttpClient()
169145
);
170146

171147
$this->assertInstanceOf(
172-
'Buzz\Client\FileGetContents',
173-
$this->container->get('zeichen32_gitlabapi.http.client.secondclient')
148+
'Http\Client\HttpClient',
149+
$secondClient->getHttpClient()
174150
);
175151
}
176152
}

composer.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,22 @@
1212
}
1313
],
1414
"require": {
15-
"php": ">=5.3.0",
16-
"symfony/framework-bundle": "~2.1|~3.0",
15+
"php": "^5.6 || ^7.0",
16+
"symfony/framework-bundle": "~2.3|~3.0",
1717
"m4tthumphrey/php-gitlab-api": "^9"
1818
},
1919
"require-dev" : {
20-
"phpunit/phpunit": "4.4.*",
2120
"php-http/message": "^1.6",
22-
"php-http/guzzle6-adapter": "^1.1"
21+
"php-http/guzzle6-adapter": "^1.1",
22+
"phpunit/phpunit": "~4.5"
2323
},
2424
"autoload": {
2525
"psr-0": { "Zeichen32\\GitLabApiBundle": "" }
2626
},
2727
"target-dir": "Zeichen32/GitLabApiBundle",
2828
"extra": {
2929
"branch-alias": {
30-
"dev-master": "2.0.x-dev"
30+
"dev-master": "3.0.x-dev"
3131
}
3232
}
3333
}

readme.md

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ The preferred way to install this bundle is to rely on [Composer](http://getcomp
1717
{
1818
"require": {
1919
// ...
20-
"zeichen32/gitlabapibundle": "~2.0"
20+
"zeichen32/gitlabapibundle": "~3.0"
2121
}
2222
}
2323
```
@@ -56,9 +56,6 @@ zeichen32_git_lab_api:
5656
url: http://example.org/api/v3/
5757
auth_method: http_token
5858
sudo: 1
59-
options:
60-
timeout: 60
61-
user_agent: MyApp (http://example.org)
6259
thirdclient:
6360
token: your-api-token
6461
url: http://example.org/api/v3/
@@ -110,10 +107,7 @@ zeichen32_git_lab_api:
110107
auth_method: ~ http_token|url_token|oauth_token
111108
sudo: ~
112109
alias: ~
113-
http_client: ~ # Buzz client service id
114-
options:
115-
timeout: ~
116-
user_agent: ~
110+
http_client: ~ # http plug client service id
117111

118112
```
119113

0 commit comments

Comments
 (0)