Skip to content

Commit dc4e5b7

Browse files
authored
Merge pull request #68 from chrisryan/php8
Update to support PHP 8.x
2 parents 60d12de + c783add commit dc4e5b7

File tree

9 files changed

+36
-57
lines changed

9 files changed

+36
-57
lines changed

.coveralls.yml

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

.github/workflows/php.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,18 @@ jobs:
1111
runs-on: ubuntu-18.04
1212
strategy:
1313
matrix:
14-
php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4']
14+
php-versions: ['7.2', '7.3', '7.4', '8.0', '8.1']
1515
steps:
1616
- name: Checkout
1717
uses: actions/checkout@v2
1818
- name: Install PHP
1919
uses: shivammathur/setup-php@v2
2020
with:
2121
php-version: ${{ matrix.php-versions }}
22+
- name: Install MongoDB
23+
uses: supercharge/mongodb-github-action@1.8.0
24+
with:
25+
mongodb-version: '4.2'
2226
- name: Validate composer.json and composer.lock
2327
run: composer validate
2428
- name: Install dependencies

.travis.yml

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

README.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
# mongo-queue-php
2-
[![Build Status](https://travis-ci.org/traderinteractive/mongo-queue-php.svg?branch=master)](https://travis-ci.org/traderinteractive/mongo-queue-php)
32
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/traderinteractive/mongo-queue-php/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/traderinteractive/mongo-queue-php/?branch=master)
4-
[![Coverage Status](https://coveralls.io/repos/github/traderinteractive/mongo-queue-php/badge.svg)](https://coveralls.io/github/traderinteractive/mongo-queue-php)
53

6-
[![Latest Stable Version](https://poser.pugx.org/traderinteractive/mongo-queue-php/v/stable)](https://packagist.org/packages/traderinteractive/mongo-queue-php)
7-
[![Latest Unstable Version](https://poser.pugx.org/traderinteractive/mongo-queue-php/v/unstable)](https://packagist.org/packages/traderinteractive/mongo-queue-php)
8-
[![License](https://poser.pugx.org/traderinteractive/mongo-queue-php/license)](https://packagist.org/packages/traderinteractive/mongo-queue-php)
4+
[![Latest Stable Version](https://poser.pugx.org/traderinteractive/mongo-queue/v/stable)](https://packagist.org/packages/traderinteractive/mongo-queue)
5+
[![Latest Unstable Version](https://poser.pugx.org/traderinteractive/mongo-queue/v/unstable)](https://packagist.org/packages/traderinteractive/mongo-queue)
6+
[![License](https://poser.pugx.org/traderinteractive/mongo-queue/license)](https://packagist.org/packages/traderinteractive/mongo-queue)
97

10-
[![Total Downloads](https://poser.pugx.org/traderinteractive/mongo-queue-php/downloads)](https://packagist.org/packages/traderinteractive/mongo-queue-php)
11-
[![Daily Downloads](https://poser.pugx.org/traderinteractive/mongo-queue-php/d/daily)](https://packagist.org/packages/traderinteractive/mongo-queue-php)
12-
[![Monthly Downloads](https://poser.pugx.org/traderinteractive/mongo-queue-php/d/monthly)](https://packagist.org/packages/traderinteractive/mongo-queue-php)
8+
[![Total Downloads](https://poser.pugx.org/traderinteractive/mongo-queue/downloads)](https://packagist.org/packages/traderinteractive/mongo-queue)
9+
[![Daily Downloads](https://poser.pugx.org/traderinteractive/mongo-queue/d/daily)](https://packagist.org/packages/traderinteractive/mongo-queue)
10+
[![Monthly Downloads](https://poser.pugx.org/traderinteractive/mongo-queue/d/monthly)](https://packagist.org/packages/traderinteractive/mongo-queue)
1311

1412
PHP message queue using MongoDB as a backend.
1513

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424
"sort-packages": true
2525
},
2626
"require": {
27-
"php": "^7.0",
27+
"php": "^7.2 || ^8.0",
2828
"ext-mongodb": "*",
29-
"mongodb/mongodb": "^1.1"
29+
"mongodb/mongodb": "^1.4"
3030
},
3131
"require-dev": {
32-
"phpunit/phpunit": "^6.5.2",
32+
"phpunit/phpunit": "^8",
3333
"squizlabs/php_codesniffer": "^3.2"
3434
},
3535
"autoload": {

src/AbstractQueue.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ final public function count(array $query, bool $running = null) : int
198198
$totalQuery['earliestGet'] = [$key => new UTCDateTime((int)(microtime(true) * 1000))];
199199
}
200200

201-
return $this->collection->count($this->buildPayloadQuery($totalQuery, $query));
201+
return $this->collection->countDocuments($this->buildPayloadQuery($totalQuery, $query));
202202
}
203203

204204
/**
@@ -264,7 +264,7 @@ final public function send(Message $message)
264264
*
265265
* @throws \Exception couldnt create index after 5 attempts
266266
*/
267-
final private function ensureIndex(array $index)
267+
private function ensureIndex(array $index)
268268
{
269269
if ($this->isIndexIncludedInExistingIndex($index)) {
270270
return;
@@ -384,7 +384,7 @@ private function indexExists(array $index) : bool
384384
*
385385
* @return void
386386
*/
387-
final private function verifySort(array $sort, string $label, array &$completeFields)
387+
private function verifySort(array $sort, string $label, array &$completeFields)
388388
{
389389
foreach ($sort as $key => $value) {
390390
$this->throwIfTrue(!is_string($key), "key in \${$label} was not a string");

tests/MessageTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,26 +110,26 @@ public function withPriority()
110110
/**
111111
* @test
112112
* @covers ::__construct
113-
* @expectedException \InvalidArgumentException
114-
* @expectedExceptionMessage $priority was NaN
115113
*
116114
* @return void
117115
*/
118116
public function constructWithNaNPriority()
119117
{
118+
$this->expectException(\InvalidArgumentException::class);
119+
$this->expectExceptionMessage('$priority was NaN');
120120
new Message(null, [], null, NAN);
121121
}
122122

123123
/**
124124
* @test
125125
* @covers ::withPriority
126-
* @expectedException \InvalidArgumentException
127-
* @expectedExceptionMessage $priority was NaN
128126
*
129127
* @return void
130128
*/
131129
public function withNaNPriority()
132130
{
131+
$this->expectException(\InvalidArgumentException::class);
132+
$this->expectExceptionMessage('$priority was NaN');
133133
(new Message())->withPriority(NAN);
134134
}
135135
}

tests/QueueAwareTraitTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,9 @@ class QueueAwareTraitTest extends TestCase
1616
public function setQueue()
1717
{
1818
$mockQueue = $this->getObjectForTrait('\TraderInteractive\Mongo\QueueAwareTrait');
19-
$this->assertAttributeEquals(null, 'mongoQueue', $mockQueue);
2019
$mongoQueue = $this->getMockBuilder('\\TraderInteractive\\Mongo\\QueueInterface')->getMock();
2120
$mockQueue->setQueue($mongoQueue);
22-
$this->assertAttributeEquals($mongoQueue, 'mongoQueue', $mockQueue);
21+
$this->assertEquals($mongoQueue, $mockQueue->getQueue());
2322
}
2423

2524
/**

tests/QueueTest.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ final class QueueTest extends TestCase
1818
private $mongoUrl;
1919
private $queue;
2020

21-
public function setUp()
21+
public function setUp(): void
2222
{
2323
$this->mongoUrl = getenv('TESTING_MONGO_URL') ?: 'mongodb://localhost:27017';
2424
$mongo = new Client(
@@ -32,18 +32,18 @@ public function setUp()
3232
$this->queue = new Queue($this->collection);
3333
}
3434

35-
public function tearDown()
35+
public function tearDown(): void
3636
{
3737
(new Client($this->mongoUrl))->dropDatabase('testing');
3838
}
3939

4040
/**
4141
* @test
4242
* @covers ::__construct
43-
* @expectedException \InvalidArgumentException
4443
*/
4544
public function constructWithNonStringUrl()
4645
{
46+
$this->expectException(\InvalidArgumentException::class);
4747
new Queue(1, 'testing', 'messages');
4848
}
4949

@@ -71,10 +71,10 @@ public function ensureGetIndex()
7171
/**
7272
* @test
7373
* @covers ::ensureGetIndex
74-
* @expectedException \Exception
7574
*/
7675
public function ensureGetIndexWithTooLongCollectionName()
7776
{
77+
$this->expectException(\Exception::class);
7878
$collectionName = 'messages012345678901234567890123456789012345678901234567890123456789';
7979
$collectionName .= '012345678901234567890123456789012345678901234567890123456789';//128 chars
8080

@@ -85,40 +85,40 @@ public function ensureGetIndexWithTooLongCollectionName()
8585
/**
8686
* @test
8787
* @covers ::ensureGetIndex
88-
* @expectedException \InvalidArgumentException
8988
*/
9089
public function ensureGetIndexWithNonStringBeforeSortKey()
9190
{
91+
$this->expectException(\InvalidArgumentException::class);
9292
$this->queue->ensureGetIndex([0 => 1]);
9393
}
9494

9595
/**
9696
* @test
9797
* @covers ::ensureGetIndex
98-
* @expectedException \InvalidArgumentException
9998
*/
10099
public function ensureGetIndexWithNonStringAfterSortKey()
101100
{
101+
$this->expectException(\InvalidArgumentException::class);
102102
$this->queue->ensureGetIndex(['field' => 1], [0 => 1]);
103103
}
104104

105105
/**
106106
* @test
107107
* @covers ::ensureGetIndex
108-
* @expectedException \InvalidArgumentException
109108
*/
110109
public function ensureGetIndexWithBadBeforeSortValue()
111110
{
111+
$this->expectException(\InvalidArgumentException::class);
112112
$this->queue->ensureGetIndex(['field' => 'NotAnInt']);
113113
}
114114

115115
/**
116116
* @test
117117
* @covers ::ensureGetIndex
118-
* @expectedException \InvalidArgumentException
119118
*/
120119
public function ensureGetIndexWithBadAfterSortValue()
121120
{
121+
$this->expectException(\InvalidArgumentException::class);
122122
$this->queue->ensureGetIndex([], ['field' => 'NotAnInt']);
123123
}
124124

@@ -127,11 +127,11 @@ public function ensureGetIndexWithBadAfterSortValue()
127127
*
128128
* @test
129129
* @covers ::ensureGetIndex
130-
* @expectedException \Exception
131-
* @expectedExceptionMessage couldnt create index after 5 attempts
132130
*/
133131
public function ensureIndexCannotBeCreatedAfterFiveAttempts()
134132
{
133+
$this->expectException(\Exception::class);
134+
$this->expectExceptionMessage('couldnt create index after 5 attempts');
135135
$mockCollection = $this->getMockBuilder('\MongoDB\Collection')->disableOriginalConstructor()->getMock();
136136

137137
$mockCollection->method('listIndexes')->willReturn([]);
@@ -180,20 +180,20 @@ public function ensureCountIndexWithPrefixOfPrevious()
180180
/**
181181
* @test
182182
* @covers ::ensureCountIndex
183-
* @expectedException \InvalidArgumentException
184183
*/
185184
public function ensureCountIndexWithNonStringKey()
186185
{
186+
$this->expectException(\InvalidArgumentException::class);
187187
$this->queue->ensureCountIndex([0 => 1], false);
188188
}
189189

190190
/**
191191
* @test
192192
* @covers ::ensureCountIndex
193-
* @expectedException \InvalidArgumentException
194193
*/
195194
public function ensureCountIndexWithBadValue()
196195
{
196+
$this->expectException(\InvalidArgumentException::class);
197197
$this->queue->ensureCountIndex(['field' => 'NotAnInt'], false);
198198
}
199199

@@ -237,10 +237,10 @@ public function getWithNegativePollDuration()
237237
/**
238238
* @test
239239
* @covers ::get
240-
* @expectedException \InvalidArgumentException
241240
*/
242241
public function getWithNonStringKey()
243242
{
243+
$this->expectException(\InvalidArgumentException::class);
244244
$this->queue->get([0 => 'a value']);
245245
}
246246

@@ -386,10 +386,10 @@ public function earliestGet()
386386
/**
387387
* @test
388388
* @covers ::count
389-
* @expectedException \InvalidArgumentException
390389
*/
391390
public function countWithNonStringKey()
392391
{
392+
$this->expectException(\InvalidArgumentException::class);
393393
$this->queue->count([0 => 'a value']);
394394
}
395395

0 commit comments

Comments
 (0)