Skip to content

Commit 9e9fdcb

Browse files
committed
:octocat: use attribute to supply provider class
1 parent 2bb8a3a commit 9e9fdcb

File tree

92 files changed

+231
-373
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+231
-373
lines changed

tests/Attributes/Provider.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
/**
3+
* Class Provider
4+
*
5+
* @created 29.04.2024
6+
* @author smiley <smiley@chillerlan.net>
7+
* @copyright 2024 smiley
8+
* @license MIT
9+
*/
10+
declare(strict_types = 1);
11+
12+
namespace chillerlan\OAuthTest\Attributes;
13+
14+
use Attribute;
15+
16+
/**
17+
* Supplies the provider class name
18+
*/
19+
#[Attribute(Attribute::TARGET_CLASS)]
20+
final class Provider{
21+
22+
public function __construct(
23+
private readonly string $className,
24+
){}
25+
26+
public function className():string{
27+
return $this->className;
28+
}
29+
30+
}

tests/Providers/Live/AmazonAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,16 @@
1414
use chillerlan\OAuth\Core\{AccessToken, AuthenticatedUser, UnauthorizedAccessException};
1515
use chillerlan\OAuth\Providers\Amazon;
1616
use chillerlan\OAuth\Storage\MemoryStorage;
17+
use chillerlan\OAuthTest\Attributes\Provider;
1718
use PHPUnit\Framework\Attributes\Group;
1819

1920
/**
2021
* @property \chillerlan\OAuth\Providers\Amazon $provider
2122
*/
2223
#[Group('providerLiveTest')]
24+
#[Provider(Amazon::class)]
2325
final class AmazonAPITest extends OAuth2ProviderLiveTestAbstract{
2426

25-
protected function getProviderFQCN():string{
26-
return Amazon::class;
27-
}
28-
2927
protected function assertMeResponse(AuthenticatedUser $user):void{
3028
$this::assertMatchesRegularExpression('/[a-z\d.]+/i', $user->id);
3129
}

tests/Providers/Live/BattleNetAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
use chillerlan\OAuth\Core\AuthenticatedUser;
1515
use chillerlan\OAuth\Providers\BattleNet;
16+
use chillerlan\OAuthTest\Attributes\Provider;
1617
use PHPUnit\Framework\Attributes\Group;
1718
use function explode;
1819

@@ -21,12 +22,9 @@
2122
*/
2223
#[Group('shortTokenExpiry')]
2324
#[Group('providerLiveTest')]
25+
#[Provider(BattleNet::class)]
2426
final class BattleNetAPITest extends OAuth2ProviderLiveTestAbstract{
2527

26-
protected function getProviderFQCN():string{
27-
return BattleNet::class;
28-
}
29-
3028
protected function assertMeResponse(AuthenticatedUser $user):void{
3129
$this::assertSame($this->TEST_USER, explode('#', $user->handle)[0]);
3230
}

tests/Providers/Live/BigCartelAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\BigCartel;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\BigCartel $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(BigCartel::class)]
2123
final class BigCartelAPITest extends OAuth2ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return BigCartel::class;
25-
}
26-
2725
}

tests/Providers/Live/BitbucketAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Bitbucket;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Bitbucket $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(Bitbucket::class)]
2123
final class BitbucketAPITest extends OAuth2ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return Bitbucket::class;
25-
}
26-
2725
}

tests/Providers/Live/CodebergAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Codeberg;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Codeberg $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(Codeberg::class)]
2123
class CodebergAPITest extends OAuth2ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return Codeberg::class;
25-
}
26-
2725
}

tests/Providers/Live/DeezerAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,15 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Deezer;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Deezer $provider
1920
*/
2021
#[Group('shortTokenExpiry')]
2122
#[Group('providerLiveTest')]
23+
#[Provider(Deezer::class)]
2224
final class DeezerAPITest extends OAuth2ProviderLiveTestAbstract{
2325

24-
protected function getProviderFQCN():string{
25-
return Deezer::class;
26-
}
27-
2826
}

tests/Providers/Live/DeviantArtAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,15 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\DeviantArt;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\DeviantArt $provider
1920
*/
2021
#[Group('shortTokenExpiry')]
2122
#[Group('providerLiveTest')]
23+
#[Provider(DeviantArt::class)]
2224
final class DeviantArtAPITest extends OAuth2ProviderLiveTestAbstract{
2325

24-
protected function getProviderFQCN():string{
25-
return DeviantArt::class;
26-
}
27-
2826
}

tests/Providers/Live/DiscogsAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Discogs;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Discogs $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(Discogs::class)]
2123
final class DiscogsAPITest extends OAuth1ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return Discogs::class;
25-
}
26-
2725
}

tests/Providers/Live/DiscordAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,16 @@
1313

1414
use chillerlan\OAuth\Core\AccessToken;
1515
use chillerlan\OAuth\Providers\Discord;
16+
use chillerlan\OAuthTest\Attributes\Provider;
1617
use PHPUnit\Framework\Attributes\Group;
1718

1819
/**
1920
* @property \chillerlan\OAuth\Providers\Discord $provider
2021
*/
2122
#[Group('providerLiveTest')]
23+
#[Provider(Discord::class)]
2224
final class DiscordAPITest extends OAuth2ProviderLiveTestAbstract{
2325

24-
protected function getProviderFQCN():string{
25-
return Discord::class;
26-
}
27-
2826
public function testRequestCredentialsToken():void{
2927
$token = $this->provider->getClientCredentialsToken([Discord::SCOPE_CONNECTIONS, Discord::SCOPE_IDENTIFY]);
3028

tests/Providers/Live/FlickrAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,17 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Flickr;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Flickr $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(Flickr::class)]
2123
final class FlickrAPITest extends OAuth1ProviderLiveTestAbstract{
2224

2325
protected string $test_name;
2426
protected string $test_id;
2527

26-
protected function getProviderFQCN():string{
27-
return Flickr::class;
28-
}
29-
3028
}

tests/Providers/Live/FoursquareAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Foursquare;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Foursquare $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(Foursquare::class)]
2123
final class FoursquareAPITest extends OAuth2ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return Foursquare::class;
25-
}
26-
2725
}

tests/Providers/Live/GitHubAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\GitHub;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\GitHub $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(GitHub::class)]
2123
final class GitHubAPITest extends OAuth2ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return GitHub::class;
25-
}
26-
2725
}

tests/Providers/Live/GitLabAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,15 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\GitLab;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\GitLab $provider
1920
*/
2021
#[Group('shortTokenExpiry')]
2122
#[Group('providerLiveTest')]
23+
#[Provider(GitLab::class)]
2224
final class GitLabAPITest extends OAuth2ProviderLiveTestAbstract{
2325

24-
protected function getProviderFQCN():string{
25-
return GitLab::class;
26-
}
27-
2826
}

tests/Providers/Live/GiteaAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Gitea;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Gitea $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(Gitea::class)]
2123
class GiteaAPITest extends OAuth2ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return Gitea::class;
25-
}
26-
2725
}

tests/Providers/Live/GoogleAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,17 @@
1313

1414
use chillerlan\OAuth\Core\AuthenticatedUser;
1515
use chillerlan\OAuth\Providers\Google;
16+
use chillerlan\OAuthTest\Attributes\Provider;
1617
use PHPUnit\Framework\Attributes\Group;
1718

1819
/**
1920
* @property \chillerlan\OAuth\Providers\Google $provider
2021
*/
2122
#[Group('shortTokenExpiry')]
2223
#[Group('providerLiveTest')]
24+
#[Provider(Google::class)]
2325
final class GoogleAPITest extends OAuth2ProviderLiveTestAbstract{
2426

25-
protected function getProviderFQCN():string{
26-
return Google::class;
27-
}
28-
2927
protected function assertMeResponse(AuthenticatedUser $user):void{
3028
$this::assertSame($this->TEST_USER, $user->email);
3129
}

tests/Providers/Live/GuildWars2APITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,19 @@
1414
use chillerlan\OAuth\Core\AccessToken;
1515
use chillerlan\OAuth\Core\AuthenticatedUser;
1616
use chillerlan\OAuth\Providers\GuildWars2;
17+
use chillerlan\OAuthTest\Attributes\Provider;
1718
use PHPUnit\Framework\Attributes\Group;
1819

1920
/**
2021
* @property \chillerlan\OAuth\Providers\GuildWars2 $provider
2122
*/
2223
#[Group('providerLiveTest')]
24+
#[Provider(GuildWars2::class)]
2325
final class GuildWars2APITest extends OAuth2ProviderLiveTestAbstract{
2426

2527
protected AccessToken $token;
2628
protected string $tokenname;
2729

28-
protected function getProviderFQCN():string{
29-
return GuildWars2::class;
30-
}
31-
3230
protected function setUp():void{
3331
parent::setUp();
3432

tests/Providers/Live/ImgurAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\Imgur;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\Imgur $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(Imgur::class)]
2123
final class ImgurAPITest extends OAuth2ProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return Imgur::class;
25-
}
26-
2725
}

tests/Providers/Live/LastFMAPITest.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@
1212
namespace chillerlan\OAuthTest\Providers\Live;
1313

1414
use chillerlan\OAuth\Providers\LastFM;
15+
use chillerlan\OAuthTest\Attributes\Provider;
1516
use PHPUnit\Framework\Attributes\Group;
1617

1718
/**
1819
* @property \chillerlan\OAuth\Providers\LastFM $provider
1920
*/
2021
#[Group('providerLiveTest')]
22+
#[Provider(LastFM::class)]
2123
final class LastFMAPITest extends OAuthProviderLiveTestAbstract{
2224

23-
protected function getProviderFQCN():string{
24-
return LastFM::class;
25-
}
26-
2725
}

0 commit comments

Comments
 (0)