Skip to content

Commit 58d178a

Browse files
authored
Merge pull request #18 from SimonFrings/tests
Run tests on PHPUnit 9 and update PHPUnit configuration schema for PHPUnit 9.3
2 parents e356b73 + 3614890 commit 58d178a

File tree

6 files changed

+53
-19
lines changed

6 files changed

+53
-19
lines changed

.gitattributes

+1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@
33
/.travis.yml export-ignore
44
/examples/ export-ignore
55
/phpunit.xml.dist export-ignore
6+
/phpunit.xml.legacy export-ignore
67
/tests/ export-ignore

.travis.yml

+3-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ php:
1313
# lock distro so new future defaults will not break the build
1414
dist: trusty
1515

16-
sudo: false
17-
1816
install:
19-
- composer install --no-interaction
17+
- composer install
2018

2119
script:
22-
- vendor/bin/phpunit --coverage-text
20+
- if [[ "$TRAVIS_PHP_VERSION" > "7.2" ]]; then vendor/bin/phpunit --coverage-text; fi
21+
- if [[ "$TRAVIS_PHP_VERSION" < "7.3" ]]; then vendor/bin/phpunit --coverage-text -c phpunit.xml.legacy; fi

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
"react/http": "^1.0"
2424
},
2525
"require-dev": {
26-
"phpunit/phpunit": "^7.0 || ^6.4 || ^5.7 || ^4.8.35"
26+
"phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35"
2727
}
2828
}

phpunit.xml.dist

+10-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22

3-
<phpunit bootstrap="vendor/autoload.php" colors="true">
3+
<!-- PHPUnit configuration file with new format for PHPUnit 9.3+ -->
4+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
6+
bootstrap="vendor/autoload.php"
7+
colors="true"
8+
cacheResult="false">
49
<testsuites>
510
<testsuite name="EventSource Test Suite">
611
<directory>./tests/</directory>
712
</testsuite>
813
</testsuites>
9-
<filter>
10-
<whitelist>
14+
<coverage>
15+
<include>
1116
<directory>./src/</directory>
12-
</whitelist>
13-
</filter>
17+
</include>
18+
</coverage>
1419
</phpunit>

phpunit.xml.legacy

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<!-- PHPUnit configuration file with old format for PHPUnit 9.2 or older -->
4+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/4.8/phpunit.xsd"
6+
bootstrap="vendor/autoload.php"
7+
colors="true">
8+
<testsuites>
9+
<testsuite name="EventSource Test Suite">
10+
<directory>./tests/</directory>
11+
</testsuite>
12+
</testsuites>
13+
<filter>
14+
<whitelist>
15+
<directory>./src/</directory>
16+
</whitelist>
17+
</filter>
18+
</phpunit>

tests/EventSourceTest.php

+20-9
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,24 @@
1313

1414
class EventSourceTest extends TestCase
1515
{
16-
/**
17-
* @expectedException InvalidArgumentException
18-
*/
1916
public function testConstructorThrowsIfFirstArgumentIsNotAnUri()
2017
{
2118
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
19+
$this->setExpectedException('InvalidArgumentException');
2220
new EventSource('///', $loop);
2321
}
2422

25-
/**
26-
* @expectedException InvalidArgumentException
27-
*/
2823
public function testConstructorThrowsIfUriArgumentDoesNotIncludeScheme()
2924
{
3025
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
26+
$this->setExpectedException('InvalidArgumentException');
3127
new EventSource('example.com', $loop);
3228
}
3329

34-
/**
35-
* @expectedException InvalidArgumentException
36-
*/
3730
public function testConstructorThrowsIfUriArgumentIncludesInvalidScheme()
3831
{
3932
$loop = $this->getMockBuilder('React\EventLoop\LoopInterface')->getMock();
33+
$this->setExpectedException('InvalidArgumentException');
4034
new EventSource('ftp://example.com', $loop);
4135
}
4236

@@ -620,4 +614,21 @@ public function testReconnectAfterStreamClosesUsesLastEventIdFromParsedEventStre
620614
$this->assertNotNull($timerReconnect);
621615
$timerReconnect();
622616
}
617+
618+
public function setExpectedException($exception, $exceptionMessage = '', $exceptionCode = null)
619+
{
620+
if (method_exists($this, 'expectException')) {
621+
// PHPUnit 5.2+
622+
$this->expectException($exception);
623+
if ($exceptionMessage !== '') {
624+
$this->expectExceptionMessage($exceptionMessage);
625+
}
626+
if ($exceptionCode !== null) {
627+
$this->expectExceptionCode($exceptionCode);
628+
}
629+
} else {
630+
// legacy PHPUnit 4 - PHPUnit 5.1
631+
parent::setExpectedException($exception, $exceptionMessage, $exceptionCode);
632+
}
633+
}
623634
}

0 commit comments

Comments
 (0)