Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHPUnit 10 Shift #208

Merged
merged 8 commits into from
Feb 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/phpunit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:

strategy:
matrix:
php-versions: ['7.4', '8.0', '8.1', '8.2', '8.3']
php-versions: ['8.1', '8.2', '8.3']

steps:
- uses: actions/checkout@v2
Expand Down
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/vendor/
/.phpunit.result.cache
/composer.lock
/.phpunit.cache
/composer.lock
/.phpunit.result.cache
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
# CHANGELOG
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
### Changed
- Support for PHP 7.4 and 8.0 has been dropped. Please use v2.0.0 if you need to use this with an older version of PHP.

## v2.0.0
There are **no breaking changes** to the library, but the minimum PHP version is now 7.4.
Expand Down
4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
}
],
"require": {
"php": ">=7.4",
"php": ">=8.0",
"guzzlehttp/guzzle": "^7.0"
},
"require-dev": {
"phpunit/phpunit": "^9",
"phpunit/phpunit": "^10.0",
"phpstan/phpstan": "^0.12",
"php-coveralls/php-coveralls": "^2.4"
},
Expand Down
14 changes: 7 additions & 7 deletions phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" backupStaticAttributes="false" bootstrap="vendor/autoload.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage includeUncoveredFiles="true">
<include>
<directory suffix=".php">./src</directory>
</include>
</coverage>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" backupGlobals="false" bootstrap="vendor/autoload.php" colors="true" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.5/phpunit.xsd" cacheDirectory=".phpunit.cache" backupStaticProperties="false">
<testsuites>
<testsuite name="Test Suite">
<directory suffix=".php">./tests</directory>
<directory suffix=".php">./tests/Unit</directory>
</testsuite>
</testsuites>
<source>
<include>
<directory suffix=".php">./src</directory>
</include>
</source>
</phpunit>
4 changes: 2 additions & 2 deletions tests/TestCase.php → tests/SdkBaseTestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
use GuzzleHttp\Exception\RequestException;
use PHPUnit\Framework\TestCase as BaseTestCase;

abstract class TestCase extends BaseTestCase
abstract class SdkBaseTestCase extends BaseTestCase
{
protected $api;
protected $test_class;

public function setUp(): void
protected function setUp(): void
{
parent::setUp();

Expand Down
12 changes: 6 additions & 6 deletions tests/Unit/DeadLetterQueue.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

namespace Northwestern\SysDev\SOA\EventHub\Tests\Unit;

use Northwestern\SysDev\SOA\EventHub\Tests\TestCase;
use Northwestern\SysDev\SOA\EventHub\Tests\SdkBaseTestCase;

class DeadLetterQueue extends TestCase
final class DeadLetterQueue extends SdkBaseTestCase
{
protected $test_class = \Northwestern\SysDev\SOA\EventHub\DeadLetterQueue::class;

public function test_get_info()
public function test_get_info(): void
{
$response = '{"name":"etsysdev.test.queue.name.DLQ","realName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name.DLQ","eventHubAccount":"sysdev-test-acct","destinationType":"DLQ","queueStatistics":[{"label":"QueueSize","maximum":null,"minimum":null,"startTime":null,"sum":null,"current":null,"sampleSize":null,"average":null},{"label":"EnqueueCount","maximum":null,"minimum":null,"startTime":null,"sum":null,"current":null,"sampleSize":null,"average":null},{"label":"EnqueueTime","maximum":null,"minimum":null,"startTime":null,"sum":null,"current":null,"sampleSize":null,"average":null},{"label":"ExpiredCount","maximum":null,"minimum":null,"startTime":null,"sum":null,"current":null,"sampleSize":null,"average":null},{"label":"DispatchCount","maximum":null,"minimum":null,"startTime":null,"sum":null,"current":null,"sampleSize":null,"average":null},{"label":"DequeueCount","maximum":null,"minimum":null,"startTime":null,"sum":null,"current":null,"sampleSize":null,"average":null}]}';

Expand All @@ -23,15 +23,15 @@ public function test_get_info()
$this->assertEquals('etsysdev.test.queue.name.DLQ', $dlq['name']);
} // end test_get_info

public function test_move_to_dlq()
public function test_move_to_dlq(): void
{
$this->api->setHttpClient($this->mockHttpResponse(204, null));

$status = $this->api->moveToDLQ('etsysdev.test.queue.name', 'ID:1234:baz', 'etsysdev.test.queue.name');
$this->assertTrue($status);
} // end test_move_to_dlq

public function test_read_oldest()
public function test_read_oldest(): void
{
$response_id = 'ID:12345:baz';
$response_body = ['cool' => 'message'];
Expand All @@ -54,7 +54,7 @@ public function test_read_oldest()
$this->assertNull($message);
} // end test_read_oldest

public function test_move_from_dlq()
public function test_move_from_dlq(): void
{
$this->api->setHttpClient($this->mockHttpResponse(204, null));

Expand Down
10 changes: 5 additions & 5 deletions tests/Unit/DeliveredMessage.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@

namespace Northwestern\SysDev\SOA\EventHub\Tests\Unit;

use Northwestern\SysDev\SOA\EventHub\Tests\TestCase;
use Northwestern\SysDev\SOA\EventHub\Tests\SdkBaseTestCase;
use Northwestern\SysDev\SOA\EventHub\Model\DeliveredMessage as DeliveredMessageModel; // same name as the class, needs an alias to work

class DeliveredMessage extends TestCase
final class DeliveredMessage extends SdkBaseTestCase
{
public function test_opens_json_message()
public function test_opens_json_message(): void
{
$msg = new DeliveredMessageModel('ID:12345', '{"test": true}');

$this->assertArrayHasKey('test', $msg->getMessage());
} // end test_opens_json_message

public function test_raw_xml_available()
public function test_raw_xml_available(): void
{
$xml = '<?xml version="1.0" encoding="UTF-8"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Do the thing this weekend!</body></note>';
$msg = new DeliveredMessageModel('ID:12345', $xml);
Expand All @@ -23,7 +23,7 @@ public function test_raw_xml_available()
$this->assertEquals($xml, $msg->getRawMessage());
} // end test_raw_xml_available

public function test_has_message_id()
public function test_has_message_id(): void
{
$id = 'ID:12345';
$msg = new DeliveredMessageModel($id, '');
Expand Down
8 changes: 4 additions & 4 deletions tests/Unit/ErrorHandling.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@

namespace Northwestern\SysDev\SOA\EventHub\Tests\Unit;

use Northwestern\SysDev\SOA\EventHub\Tests\TestCase;
use Northwestern\SysDev\SOA\EventHub\Tests\SdkBaseTestCase;

class ErrorHandling extends TestCase
final class ErrorHandling extends SdkBaseTestCase
{
// Doesn't matter, they all use EventHubBase, which is what we're testing.
protected $test_class = \Northwestern\SysDev\SOA\EventHub\Topic::class;

public function test_connection_problem()
public function test_connection_problem(): void
{
$this->expectException(\Northwestern\SysDev\SOA\EventHub\Exception\EventHubDown::class);

Expand All @@ -18,7 +18,7 @@ public function test_connection_problem()
$this->api->listAll();
} // end test_connection_problem

public function test_unauthorized_access()
public function test_unauthorized_access(): void
{
$this->expectException(\Northwestern\SysDev\SOA\EventHub\Exception\EventHubError::class);
$this->expectExceptionCode(500);
Expand Down
14 changes: 7 additions & 7 deletions tests/Unit/Message.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

namespace Northwestern\SysDev\SOA\EventHub\Tests\Unit;

use Northwestern\SysDev\SOA\EventHub\Tests\TestCase;
use Northwestern\SysDev\SOA\EventHub\Tests\SdkBaseTestCase;

class Message extends TestCase
final class Message extends SdkBaseTestCase
{
protected $test_class = \Northwestern\SysDev\SOA\EventHub\Message::class;

public function test_read_oldest()
public function test_read_oldest(): void
{
$response_id = 'ID:12345:baz';
$response_body = ['cool' => 'message'];
Expand All @@ -31,20 +31,20 @@ public function test_read_oldest()
$this->assertNull($message);
} // end test_read_oldest

public function test_acknowledge_oldest()
public function test_acknowledge_oldest(): void
{
$this->api->setHttpClient($this->mockHttpResponse(204, null));
$status = $this->api->acknowledgeOldest('etsysdev.test.queue.name');
$this->assertTrue($status);
} // end test_acknowledge_oldest

public function test_read()
public function test_read(): void
{
// Does not currently work in EventHub
$this->markTestIncomplete();
} // end test_read

public function test_acknowledge()
public function test_acknowledge(): void
{
// With fastForward arg
$this->api->setHttpClient($this->mockHttpResponse(204, null));
Expand All @@ -57,7 +57,7 @@ public function test_acknowledge()
$this->assertTrue($status);
} // end test_acknowledge

public function test_move()
public function test_move(): void
{
// With delay arg
$this->api->setHttpClient($this->mockHttpResponse(204, null));
Expand Down
16 changes: 8 additions & 8 deletions tests/Unit/Queue.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

namespace Northwestern\SysDev\SOA\EventHub\Tests\Unit;

use Northwestern\SysDev\SOA\EventHub\Tests\TestCase;
use Northwestern\SysDev\SOA\EventHub\Tests\SdkBaseTestCase;

class Queue extends TestCase
final class Queue extends SdkBaseTestCase
{
protected $test_class = \Northwestern\SysDev\SOA\EventHub\Queue::class;

public function test_list_all()
public function test_list_all(): void
{
$response = '[{"eventHubAccount":"sysdev-test-acct","topicName":"etsysdev.test.queue.name","readTimeout":1000,"autoAcknowledge":false,"queueRealName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","alertAddress":"nicholas.evans@northwestern.edu","queueStatistics":[{"label":"QueueSize","maximum":0,"minimum":0,"startTime":"2018-10-31T06:39:00","sum":null,"average":0,"current":0,"sampleSize":null},{"label":"EnqueueCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null},{"label":"EnqueueTime","maximum":2076194,"minimum":5738,"startTime":"2018-10-31T06:39:00","sum":null,"average":791356.4578313242,"current":null,"sampleSize":null},{"label":"ExpiredCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null},{"label":"DispatchCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null},{"label":"DequeueCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null}],"selfPublishingAllowed":true,"destinationType":"QUEUE","name":"etsysdev.test.queue.name","realName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","hasMessage":false,"dlqName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name.DLQ"}]';

Expand All @@ -23,7 +23,7 @@ public function test_list_all()
$this->assertEquals('etsysdev.test.queue.name', $queues[0]['topicName']);
} // end test_list_all

public function test_get_info()
public function test_get_info(): void
{
$response = '{"eventHubAccount":"sysdev-test-acct","topicName":"etsysdev.test.queue.name","readTimeout":1000,"autoAcknowledge":false,"queueRealName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","alertAddress":"nicholas.evans@northwestern.edu","queueStatistics":[{"label":"QueueSize","maximum":0,"minimum":0,"startTime":"2018-10-31T06:39:00","sum":null,"average":0,"current":0,"sampleSize":null},{"label":"EnqueueCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null},{"label":"EnqueueTime","maximum":2076194,"minimum":5738,"startTime":"2018-10-31T06:39:00","sum":null,"average":791356.4578313242,"current":null,"sampleSize":null},{"label":"ExpiredCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null},{"label":"DispatchCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null},{"label":"DequeueCount","maximum":null,"minimum":null,"startTime":"2018-10-31T06:39:00","sum":0,"average":null,"current":null,"sampleSize":null}],"selfPublishingAllowed":true,"destinationType":"QUEUE","name":"etsysdev.test.queue.name","realName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","hasMessage":false,"dlqName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name.DLQ"}';

Expand All @@ -38,15 +38,15 @@ public function test_get_info()
$this->assertEquals('etsysdev.test.queue.name', $queue['topicName']);
} // end test_get_info

public function test_clear_all_messages()
public function test_clear_all_messages(): void
{
$this->api->setHttpClient($this->mockHttpResponse(204, ''));
$status = $this->api->clearAllMessages('etsysdev.test.queue.name');

$this->assertTrue($status);
} // end test_clear_all_messages

public function test_configure()
public function test_configure(): void
{
$response = '{"eventHubAccount":"sysdev-test-acct","topicName":"etsysdev.test.queue.name","readTimeout":1000,"autoAcknowledge":false,"queueRealName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","alertAddress":"nicholas.evans@northwestern.edu","queueStatistics":[],"selfPublishingAllowed":true,"destinationType":"QUEUE","name":"etsysdev.test.queue.name","realName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","hasMessage":false,"dlqName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name.DLQ"}';

Expand All @@ -55,7 +55,7 @@ public function test_configure()
$this->assertEquals('etsysdev.test.queue.name', $queue['topicName']);
} // end test_configure

public function test_send_test_json_message()
public function test_send_test_json_message(): void
{
$response_id = 'ID:12345:baz';
$this->api->setHttpClient($this->mockHttpResponse(204, null, ['X-message-id' => $response_id]));
Expand All @@ -64,7 +64,7 @@ public function test_send_test_json_message()
$this->assertEquals($response_id, $message_id);
} // end test_send_test_json_message

public function test_send_test_message()
public function test_send_test_message(): void
{
$response_id = 'ID:12345:baz';
$this->api->setHttpClient($this->mockHttpResponse(204, null, ['X-message-id' => $response_id]));
Expand Down
14 changes: 7 additions & 7 deletions tests/Unit/Topic.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

namespace Northwestern\SysDev\SOA\EventHub\Tests\Unit;

use Northwestern\SysDev\SOA\EventHub\Tests\TestCase;
use Northwestern\SysDev\SOA\EventHub\Tests\SdkBaseTestCase;

class Topic extends TestCase
final class Topic extends SdkBaseTestCase
{
protected $test_class = \Northwestern\SysDev\SOA\EventHub\Topic::class;

public function test_list_all()
public function test_list_all(): void
{
$response = '[{"eventHubAccount":"sysdev-test-acct","topicName":"etsysdev.test.queue.name","readTimeout":1000,"autoAcknowledge":false,"queueRealName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","alertAddress":"nicholas.evans@northwestern.edu","queueStatistics":[{"label":"QueueSize","maximum":1,"minimum":0,"startTime":"2018-10-30T14:18:00","sum":null,"current":0,"sampleSize":null,"average":0.5},{"label":"EnqueueCount","maximum":null,"minimum":null,"startTime":"2018-10-30T14:18:00","sum":1,"current":null,"sampleSize":null,"average":null},{"label":"EnqueueTime","maximum":2076194,"minimum":5738,"startTime":"2018-10-30T14:18:00","sum":null,"current":null,"sampleSize":null,"average":784116.5967366379},{"label":"ExpiredCount","maximum":null,"minimum":null,"startTime":"2018-10-30T14:18:00","sum":1,"current":null,"sampleSize":null,"average":null},{"label":"DispatchCount","maximum":null,"minimum":null,"startTime":"2018-10-30T14:18:00","sum":9,"current":null,"sampleSize":null,"average":null},{"label":"DequeueCount","maximum":null,"minimum":null,"startTime":"2018-10-30T14:18:00","sum":1,"current":null,"sampleSize":null,"average":null}],"selfPublishingAllowed":true,"destinationType":"QUEUE","name":"etsysdev.test.queue.name","realName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","hasMessage":false,"dlqName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name.DLQ"}]';

Expand All @@ -23,7 +23,7 @@ public function test_list_all()
$this->assertEquals('etsysdev.test.queue.name', $queues[0]['topicName']);
} // end test_list_all

public function test_get_info()
public function test_get_info(): void
{
$response = '{"eventHubAccount":"sysdev-test-acct","topicName":"etsysdev.test.queue.name","readTimeout":1000,"autoAcknowledge":false,"queueRealName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","alertAddress":"nicholas.evans@northwestern.edu","queueStatistics":[{"label":"QueueSize","startTime":"2018-10-30T14:22:00","maximum":1,"minimum":0,"current":0,"sum":null,"average":0.5,"sampleSize":null},{"label":"EnqueueCount","startTime":"2018-10-30T14:22:00","maximum":null,"minimum":null,"current":null,"sum":1,"average":null,"sampleSize":null},{"label":"EnqueueTime","startTime":"2018-10-30T14:22:00","maximum":2076194,"minimum":5738,"current":null,"sum":null,"average":785780.1386910215,"sampleSize":null},{"label":"ExpiredCount","startTime":"2018-10-30T14:22:00","maximum":null,"minimum":null,"current":null,"sum":1,"average":null,"sampleSize":null},{"label":"DispatchCount","startTime":"2018-10-30T14:22:00","maximum":null,"minimum":null,"current":null,"sum":9,"average":null,"sampleSize":null},{"label":"DequeueCount","startTime":"2018-10-30T14:22:00","maximum":null,"minimum":null,"current":null,"sum":1,"average":null,"sampleSize":null}],"selfPublishingAllowed":true,"destinationType":"QUEUE","name":"etsysdev.test.queue.name","realName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","hasMessage":false,"dlqName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name.DLQ"}';

Expand All @@ -38,7 +38,7 @@ public function test_get_info()
$this->assertEquals('etsysdev.test.queue.name', $queue['topicName']);
} // end test_get_info

public function test_configure()
public function test_configure(): void
{
$response = '{"eventHubAccount":"sysdev-test-acct","topicName":"etsysdev.test.queue.name","readTimeout":1000,"autoAcknowledge":false,"queueRealName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","alertAddress":"nicholas.evans@northwestern.edu","queueStatistics":[],"selfPublishingAllowed":true,"destinationType":"QUEUE","name":"etsysdev.test.queue.name","realName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name","hasMessage":false,"dlqName":"Consumer.sysdev-test-acct.VirtualTopic.etsysdev.test.queue.name.DLQ"}';
$this->api->setHttpClient($this->mockHttpResponse(200, $response));
Expand All @@ -47,7 +47,7 @@ public function test_configure()
$this->assertEquals('etsysdev.test.queue.name', $config['topicName']);
} // end test_configure

public function test_write_json_message()
public function test_write_json_message(): void
{
$response_id = 'ID:12345:baz';
$this->api->setHttpClient($this->mockHttpResponse(204, null, ['X-message-id' => $response_id]));
Expand All @@ -56,7 +56,7 @@ public function test_write_json_message()
$this->assertEquals($response_id, $message_id);
} // end test_write_json_message

public function test_write_message()
public function test_write_message(): void
{
$response_id = 'ID:12345:baz';
$this->api->setHttpClient($this->mockHttpResponse(204, null, ['X-message-id' => $response_id]));
Expand Down
Loading
Loading