Skip to content

Commit 3fa027f

Browse files
committed
Merge pull request #24 from clue-labs/tests
Clean up test suite and add a functional test case
2 parents e61f53c + 7747cdf commit 3fa027f

8 files changed

Lines changed: 87 additions & 26 deletions

File tree

composer.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
"autoload": {
1313
"psr-4": { "React\\Dns\\": "src" }
1414
},
15+
"autoload-dev": {
16+
"psr-4": { "React\\Tests\\Dns\\": "tests" }
17+
},
1518
"extra": {
1619
"branch-alias": {
1720
"dev-master": "0.4-dev"

phpunit.xml.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
processIsolation="false"
1010
stopOnFailure="false"
1111
syntaxCheck="false"
12-
bootstrap="tests/bootstrap.php"
12+
bootstrap="vendor/autoload.php"
1313
>
1414
<testsuites>
1515
<testsuite name="React Test Suite">

tests/FunctionalResolverTest.php

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace React\Tests\Dns;
4+
5+
use React\Tests\Dns\TestCase;
6+
use React\EventLoop\Factory as LoopFactory;
7+
use React\Dns\Resolver\Resolver;
8+
use React\Dns\Resolver\Factory;
9+
10+
class FunctionalTest extends TestCase
11+
{
12+
public function setUp()
13+
{
14+
$this->loop = LoopFactory::create();
15+
16+
$factory = new Factory();
17+
$this->resolver = $factory->create('8.8.8.8', $this->loop);
18+
}
19+
20+
public function testResolveGoogleResolves()
21+
{
22+
$promise = $this->resolver->resolve('google.com');
23+
$promise->then($this->expectCallableOnce(), $this->expectCallableNever());
24+
25+
$this->loop->run();
26+
}
27+
28+
public function testResolveInvalidRejects()
29+
{
30+
$promise = $this->resolver->resolve('example.invalid');
31+
$promise->then($this->expectCallableNever(), $this->expectCallableOnce());
32+
33+
$this->loop->run();
34+
}
35+
}

tests/Query/CachedExecutorTest.php

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,14 @@
22

33
namespace React\Tests\Dns\Query;
44

5+
use React\Tests\Dns\TestCase;
56
use React\Dns\Query\CachedExecutor;
67
use React\Dns\Query\Query;
78
use React\Dns\Model\Message;
89
use React\Dns\Model\Record;
910
use React\Promise;
1011

11-
class CachedExecutorTest extends \PHPUnit_Framework_TestCase
12+
class CachedExecutorTest extends TestCase
1213
{
1314
/**
1415
* @covers React\Dns\Query\CachedExecutor
@@ -87,21 +88,6 @@ private function callQueryCallbackWithAddress($address)
8788
});
8889
}
8990

90-
protected function expectCallableOnce()
91-
{
92-
$mock = $this->createCallableMock();
93-
$mock
94-
->expects($this->once())
95-
->method('__invoke');
96-
97-
return $mock;
98-
}
99-
100-
protected function createCallableMock()
101-
{
102-
return $this->getMock('React\Tests\Socket\Stub\CallableStub');
103-
}
104-
10591
private function createExecutorMock()
10692
{
10793
return $this->getMock('React\Dns\Query\ExecutorInterface');

tests/Query/RetryExecutorTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22

33
namespace React\Tests\Dns\Query;
44

5+
use React\Tests\Dns\TestCase;
56
use React\Dns\Query\RetryExecutor;
67
use React\Dns\Query\Query;
78
use React\Dns\Model\Message;
89
use React\Dns\Query\TimeoutException;
910
use React\Dns\Model\Record;
1011
use React\Promise;
1112

12-
class RetryExecutorTest extends \PHPUnit_Framework_TestCase
13+
class RetryExecutorTest extends TestCase
1314
{
1415
/**
1516
* @covers React\Dns\Query\RetryExecutor

tests/Resolver/FactoryTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
namespace React\Tests\Dns\Resolver;
44

55
use React\Dns\Resolver\Factory;
6+
use React\Tests\Dns\TestCase;
67

7-
class FactoryTest extends \PHPUnit_Framework_TestCase
8+
class FactoryTest extends TestCase
89
{
910
/** @test */
1011
public function createShouldCreateResolver()

tests/TestCase.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
namespace React\Tests\Dns;
4+
5+
abstract class TestCase extends \PHPUnit_Framework_TestCase
6+
{
7+
protected function expectCallableOnce()
8+
{
9+
$mock = $this->createCallableMock();
10+
$mock
11+
->expects($this->once())
12+
->method('__invoke');
13+
14+
return $mock;
15+
}
16+
17+
protected function expectCallableOnceWith($value)
18+
{
19+
$mock = $this->createCallableMock();
20+
$mock
21+
->expects($this->once())
22+
->method('__invoke')
23+
->with($this->equalTo($value));
24+
25+
return $mock;
26+
}
27+
28+
protected function expectCallableNever()
29+
{
30+
$mock = $this->createCallableMock();
31+
$mock
32+
->expects($this->never())
33+
->method('__invoke');
34+
35+
return $mock;
36+
}
37+
38+
protected function createCallableMock()
39+
{
40+
return $this->getMock('React\Tests\Dns\CallableStub');
41+
}
42+
}

tests/bootstrap.php

Lines changed: 0 additions & 7 deletions
This file was deleted.

0 commit comments

Comments
 (0)