Skip to content

Commit 7161d27

Browse files
committed
Deprecate TimeEntryActivity::listing()
1 parent 420baa0 commit 7161d27

File tree

3 files changed

+41
-3
lines changed

3 files changed

+41
-3
lines changed

CHANGELOG.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2222
- `Redmine\Api\CustomField::listing()` is deprecated, use `\Redmine\Api\CustomField::listNames()` instead.
2323
- `Redmine\Api\Group::listing()` is deprecated, use `\Redmine\Api\Group::listNames()` instead.
2424
- `Redmine\Api\IssueCategory::listing()` is deprecated, use `\Redmine\Api\IssueCategory::listNamesByProject()` instead.
25-
- `Redmine\Api\IssueStatus::listing()` is deprecated, use `\Redmine\Api\IssueStatus::listNamesByProject()` instead.
26-
- `Redmine\Api\Project::listing()` is deprecated, use `\Redmine\Api\Project::listNamesByProject()` instead.
27-
- `Redmine\Api\Role::listing()` is deprecated, use `\Redmine\Api\Role::listNamesByProject()` instead.
25+
- `Redmine\Api\IssueStatus::listing()` is deprecated, use `\Redmine\Api\IssueStatus::listNames()` instead.
26+
- `Redmine\Api\Project::listing()` is deprecated, use `\Redmine\Api\Project::listNames()` instead.
27+
- `Redmine\Api\Role::listing()` is deprecated, use `\Redmine\Api\Role::listNames()` instead.
28+
- `Redmine\Api\TimeEntryActivity::listing()` is deprecated, use `\Redmine\Api\TimeEntryActivity::listNames()` instead.
2829

2930
## [v2.6.0](https://github.com/kbsali/php-redmine-api/compare/v2.5.0...v2.6.0) - 2024-03-25
3031

src/Redmine/Api/TimeEntryActivity.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,12 +94,17 @@ public function all(array $params = [])
9494
/**
9595
* Returns an array of time entry activities with name/id pairs.
9696
*
97+
* @deprecated v2.7.0 Use listNames() instead.
98+
* @see TimeEntryActivity::listNames()
99+
*
97100
* @param bool $forceUpdate to force the update of the statuses var
98101
*
99102
* @return array list of time entry activities (id => name)
100103
*/
101104
public function listing($forceUpdate = false)
102105
{
106+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.7.0, use `' . __CLASS__ . '::listNames()` instead.', E_USER_DEPRECATED);
107+
103108
if (empty($this->timeEntryActivities) || $forceUpdate) {
104109
$this->timeEntryActivities = $this->list();
105110
}

tests/Unit/Api/TimeEntryActivityTest.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,38 @@ public function testListingCallsGetEveryTimeWithForceUpdate()
166166
$this->assertSame($expectedReturn, $api->listing(true));
167167
}
168168

169+
/**
170+
* Test listing().
171+
*/
172+
public function testListingTriggersDeprecationWarning()
173+
{
174+
$client = $this->createMock(Client::class);
175+
$client->method('requestGet')
176+
->willReturn(true);
177+
$client->method('getLastResponseBody')
178+
->willReturn('{"time_entry_activities":[{"id":1,"name":"TimeEntryActivity 1"},{"id":5,"name":"TimeEntryActivity 5"}]}');
179+
$client->method('getLastResponseContentType')
180+
->willReturn('application/json');
181+
182+
$api = new TimeEntryActivity($client);
183+
184+
// PHPUnit 10 compatible way to test trigger_error().
185+
set_error_handler(
186+
function ($errno, $errstr): bool {
187+
$this->assertSame(
188+
'`Redmine\Api\TimeEntryActivity::listing()` is deprecated since v2.7.0, use `Redmine\Api\TimeEntryActivity::listNames()` instead.',
189+
$errstr,
190+
);
191+
192+
restore_error_handler();
193+
return true;
194+
},
195+
E_USER_DEPRECATED,
196+
);
197+
198+
$api->listing();
199+
}
200+
169201
public function testGetIdByNameMakesGetRequest()
170202
{
171203
$response = '{"time_entry_activities":[{"id":2,"name":"TimeEntryActivities 2"}]}';

0 commit comments

Comments
 (0)