Skip to content

Commit 1bacd63

Browse files
committed
Deprecate Tracker::getIdByName()
1 parent b1e725a commit 1bacd63

File tree

3 files changed

+36
-1
lines changed

3 files changed

+36
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3535
- `Redmine\Api\TimeEntryActivity::listing()` is deprecated, use `\Redmine\Api\TimeEntryActivity::listNames()` instead.
3636
- `Redmine\Api\TimeEntryActivity::getIdByName()` is deprecated, use `\Redmine\Api\TimeEntryActivity::listNames()` instead.
3737
- `Redmine\Api\Tracker::listing()` is deprecated, use `\Redmine\Api\Tracker::listNames()` instead.
38+
- `Redmine\Api\Tracker::getIdByName()` is deprecated, use `\Redmine\Api\Tracker::listNames()` instead.
3839
- `Redmine\Api\User::listing()` is deprecated, use `\Redmine\Api\User::listLogins()` instead.
3940
- `Redmine\Api\Version::listing()` is deprecated, use `\Redmine\Api\Version::listNamesByProject()` instead.
4041

src/Redmine/Api/Tracker.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,14 +113,19 @@ public function listing($forceUpdate = false)
113113
}
114114

115115
/**
116-
* Get a tracket id given its name.
116+
* Get a tracker id given its name.
117+
*
118+
* @deprecated v2.7.0 Use listNames() instead.
119+
* @see Tracker::listNames()
117120
*
118121
* @param string|int $name tracker name
119122
*
120123
* @return int|false
121124
*/
122125
public function getIdByName($name)
123126
{
127+
@trigger_error('`' . __METHOD__ . '()` is deprecated since v2.7.0, use `' . __CLASS__ . '::listNames()` instead.', E_USER_DEPRECATED);
128+
124129
$arr = $this->doListing(false);
125130

126131
if (!isset($arr[$name])) {

tests/Unit/Api/TrackerTest.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,4 +277,33 @@ public function testGetIdByNameMakesGetRequest()
277277
$this->assertFalse($api->getIdByName('Tracker 1'));
278278
$this->assertSame(5, $api->getIdByName('Tracker 5'));
279279
}
280+
281+
public function testGgetIdByNameTriggersDeprecationWarning()
282+
{
283+
$client = $this->createMock(Client::class);
284+
$client->method('requestGet')
285+
->willReturn(true);
286+
$client->method('getLastResponseBody')
287+
->willReturn('{"trackers":[{"id":1,"name":"Tracker 1"},{"id":5,"name":"Tracker 5"}]}');
288+
$client->method('getLastResponseContentType')
289+
->willReturn('application/json');
290+
291+
$api = new Tracker($client);
292+
293+
// PHPUnit 10 compatible way to test trigger_error().
294+
set_error_handler(
295+
function ($errno, $errstr): bool {
296+
$this->assertSame(
297+
'`Redmine\Api\Tracker::getIdByName()` is deprecated since v2.7.0, use `Redmine\Api\Tracker::listNames()` instead.',
298+
$errstr,
299+
);
300+
301+
restore_error_handler();
302+
return true;
303+
},
304+
E_USER_DEPRECATED,
305+
);
306+
307+
$api->getIdByName('Tracker 5');
308+
}
280309
}

0 commit comments

Comments
 (0)