Skip to content

Commit 2725bd0

Browse files
committed
Replace actual implementations with mocks
1 parent aa46d76 commit 2725bd0

12 files changed

+174
-31
lines changed

composer.json

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,26 @@
1616
],
1717
"require": {
1818
"php": ">=5.4",
19-
"php-http/message-factory": "^1.0",
2019
"puli/composer-plugin": "1.0.0-beta8",
2120
"puli/discovery": "1.0.0-beta8"
2221
},
2322
"require-dev": {
24-
"php-http/message": "^0.1",
25-
"zendframework/zend-diactoros": "^1.0",
26-
"guzzlehttp/psr7": "^1.0",
27-
"php-http/guzzle6-adapter": "^0.2",
23+
"php-http/httplug": "1.0.0-beta",
24+
"php-http/message-factory": "^1.0",
2825
"puli/cli": "1.0.0-beta9",
2926
"phpspec/phpspec": "^2.4",
3027
"henrikbjorn/phpspec-code-coverage" : "^1.0"
3128
},
32-
"suggest": {
33-
"php-http/message": "To use Guzzle or Diactoros factories"
34-
},
3529
"autoload": {
3630
"psr-4": {
3731
"Http\\Discovery\\": "src/"
3832
}
3933
},
34+
"autoload-dev": {
35+
"psr-4": {
36+
"spec\\Http\\Discovery\\": "spec/"
37+
}
38+
},
4039
"scripts": {
4140
"test": "vendor/bin/phpspec run",
4241
"test-ci": "vendor/bin/phpspec run -c phpspec.yml.ci"

spec/ClassDiscoveryBehavior.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
<?php
2+
3+
namespace spec\Http\Discovery;
4+
5+
use Puli\GeneratedPuliFactory;
6+
use Puli\Discovery\Api\Discovery;
7+
use Puli\Repository\Api\ResourceRepository;
8+
use PhpSpec\ObjectBehavior;
9+
10+
abstract class ClassDiscoveryBehavior extends ObjectBehavior
11+
{
12+
function let(
13+
GeneratedPuliFactory $puliFactory,
14+
ResourceRepository $repository,
15+
Discovery $discovery
16+
) {
17+
$puliFactory->createRepository()->willReturn($repository);
18+
$puliFactory->createDiscovery($repository)->willReturn($discovery);
19+
20+
$this->setPuliFactory($puliFactory);
21+
}
22+
23+
function letgo()
24+
{
25+
$this->resetPuliFactory();
26+
}
27+
}

spec/HttpAsyncClientDiscoverySpec.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace spec\Http\Discovery;
44

5-
use PhpSpec\ObjectBehavior;
5+
use Puli\Discovery\Binding\ClassBinding;
6+
use Puli\Discovery\Api\Discovery;
67

7-
class HttpAsyncClientDiscoverySpec extends ObjectBehavior
8+
class HttpAsyncClientDiscoverySpec extends ClassDiscoveryBehavior
89
{
910
function it_is_initializable()
1011
{
@@ -16,8 +17,15 @@ function it_is_a_class_discovery()
1617
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1718
}
1819

19-
function it_finds_an_http_client()
20-
{
20+
function it_finds_an_async_http_client(
21+
Discovery $discovery,
22+
ClassBinding $binding
23+
) {
24+
$binding->hasParameterValue('depends')->willReturn(false);
25+
$binding->getClassName()->willReturn('spec\Http\Discovery\Stub\HttpAsyncClientStub');
26+
27+
$discovery->findBindings('Http\Client\HttpAsyncClient')->willReturn([$binding]);
28+
2129
$this->find()->shouldImplement('Http\Client\HttpAsyncClient');
2230
}
2331
}

spec/HttpClientDiscoverySpec.php

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace spec\Http\Discovery;
44

5-
use PhpSpec\ObjectBehavior;
5+
use Puli\Discovery\Binding\ClassBinding;
6+
use Puli\Discovery\Api\Discovery;
67

7-
class HttpClientDiscoverySpec extends ObjectBehavior
8+
class HttpClientDiscoverySpec extends ClassDiscoveryBehavior
89
{
910
function it_is_initializable()
1011
{
@@ -16,8 +17,15 @@ function it_is_a_class_discovery()
1617
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1718
}
1819

19-
function it_finds_an_http_client()
20-
{
20+
function it_finds_an_http_client(
21+
Discovery $discovery,
22+
ClassBinding $binding
23+
) {
24+
$binding->hasParameterValue('depends')->willReturn(false);
25+
$binding->getClassName()->willReturn('spec\Http\Discovery\Stub\HttpClientStub');
26+
27+
$discovery->findBindings('Http\Client\HttpClient')->willReturn([$binding]);
28+
2129
$this->find()->shouldImplement('Http\Client\HttpClient');
2230
}
2331
}

spec/MessageFactoryDiscoverySpec.php

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
namespace spec\Http\Discovery;
44

5-
use PhpSpec\ObjectBehavior;
5+
use Http\Message\MessageFactory;
6+
use Puli\Discovery\Binding\ClassBinding;
7+
use Puli\Discovery\Api\Discovery;
68

7-
class MessageFactoryDiscoverySpec extends ObjectBehavior
9+
class MessageFactoryDiscoverySpec extends ClassDiscoveryBehavior
810
{
911
function it_is_initializable()
1012
{
@@ -16,8 +18,15 @@ function it_is_a_class_discovery()
1618
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1719
}
1820

19-
function it_finds_an_http_message_factory()
20-
{
21-
$this->find()->shouldHaveType('Http\Message\MessageFactory');
21+
function it_finds_a_message_factory(
22+
Discovery $discovery,
23+
ClassBinding $binding
24+
) {
25+
$binding->hasParameterValue('depends')->willReturn(false);
26+
$binding->getClassName()->willReturn('spec\Http\Discovery\Stub\MessageFactoryStub');
27+
28+
$discovery->findBindings('Http\Message\MessageFactory')->willReturn([$binding]);
29+
30+
$this->find()->shouldImplement('Http\Message\MessageFactory');
2231
}
2332
}

spec/StreamFactoryDiscoverySpec.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace spec\Http\Discovery;
44

5-
use PhpSpec\ObjectBehavior;
5+
use Puli\Discovery\Binding\ClassBinding;
6+
use Puli\Discovery\Api\Discovery;
67

7-
class StreamFactoryDiscoverySpec extends ObjectBehavior
8+
class StreamFactoryDiscoverySpec extends ClassDiscoveryBehavior
89
{
910
function it_is_initializable()
1011
{
@@ -16,8 +17,15 @@ function it_is_a_class_discovery()
1617
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1718
}
1819

19-
function it_finds_an_http_stream_factory()
20-
{
21-
$this->find()->shouldHaveType('Http\Message\StreamFactory');
20+
function it_finds_a_stream_factory(
21+
Discovery $discovery,
22+
ClassBinding $binding
23+
) {
24+
$binding->hasParameterValue('depends')->willReturn(false);
25+
$binding->getClassName()->willReturn('spec\Http\Discovery\Stub\StreamFactoryStub');
26+
27+
$discovery->findBindings('Http\Message\StreamFactory')->willReturn([$binding]);
28+
29+
$this->find()->shouldImplement('Http\Message\StreamFactory');
2230
}
2331
}

spec/Stub/HttpAsyncClientStub.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace spec\Http\Discovery\Stub;
4+
5+
use Http\Client\HttpAsyncClient;
6+
use Psr\Http\Message\RequestInterface;
7+
8+
class HttpAsyncClientStub implements HttpAsyncClient
9+
{
10+
public function sendAsyncRequest(RequestInterface $request)
11+
{
12+
}
13+
}

spec/Stub/HttpClientStub.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
namespace spec\Http\Discovery\Stub;
4+
5+
use Http\Client\HttpClient;
6+
use Psr\Http\Message\RequestInterface;
7+
8+
class HttpClientStub implements HttpClient
9+
{
10+
public function sendRequest(RequestInterface $request)
11+
{
12+
}
13+
}

spec/Stub/MessageFactoryStub.php

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
namespace spec\Http\Discovery\Stub;
4+
5+
use Http\Message\MessageFactory;
6+
7+
class MessageFactoryStub implements MessageFactory
8+
{
9+
public function createRequest(
10+
$method,
11+
$uri,
12+
array $headers = [],
13+
$body = null,
14+
$protocolVersion = '1.1'
15+
) {
16+
}
17+
18+
public function createResponse(
19+
$statusCode = 200,
20+
$reasonPhrase = null,
21+
array $headers = [],
22+
$body = null,
23+
$protocolVersion = '1.1'
24+
) {
25+
}
26+
}

spec/Stub/StreamFactoryStub.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace spec\Http\Discovery\Stub;
4+
5+
use Http\Message\StreamFactory;
6+
7+
class StreamFactoryStub implements StreamFactory
8+
{
9+
public function createStream($body = null)
10+
{
11+
}
12+
}

spec/Stub/UriFactoryStub.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
namespace spec\Http\Discovery\Stub;
4+
5+
use Http\Message\UriFactory;
6+
7+
class UriFactoryStub implements UriFactory
8+
{
9+
public function createUri($uri)
10+
{
11+
}
12+
}

spec/UriFactoryDiscoverySpec.php

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
namespace spec\Http\Discovery;
44

5-
use PhpSpec\ObjectBehavior;
5+
use Puli\Discovery\Binding\ClassBinding;
6+
use Puli\Discovery\Api\Discovery;
67

7-
class UriFactoryDiscoverySpec extends ObjectBehavior
8+
class UriFactoryDiscoverySpec extends ClassDiscoveryBehavior
89
{
910
function it_is_initializable()
1011
{
@@ -16,8 +17,15 @@ function it_is_a_class_discovery()
1617
$this->shouldHaveType('Http\Discovery\ClassDiscovery');
1718
}
1819

19-
function it_finds_an_http_uri_factory()
20-
{
21-
$this->find()->shouldHaveType('Http\Message\UriFactory');
20+
function it_finds_a_uri_factory(
21+
Discovery $discovery,
22+
ClassBinding $binding
23+
) {
24+
$binding->hasParameterValue('depends')->willReturn(false);
25+
$binding->getClassName()->willReturn('spec\Http\Discovery\Stub\UriFactoryStub');
26+
27+
$discovery->findBindings('Http\Message\UriFactory')->willReturn([$binding]);
28+
29+
$this->find()->shouldImplement('Http\Message\UriFactory');
2230
}
2331
}

0 commit comments

Comments
 (0)