| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616 |
- <?php
- namespace AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Traits;
- use AlibabaCloud\Client\SDK;
- use PHPUnit\Framework\TestCase;
- use AlibabaCloud\Client\AlibabaCloud;
- use AlibabaCloud\Client\Credentials\StsCredential;
- use AlibabaCloud\Client\Exception\ClientException;
- use AlibabaCloud\Client\Signature\ShaHmac1Signature;
- use AlibabaCloud\Client\Credentials\AccessKeyCredential;
- use AlibabaCloud\Client\Credentials\EcsRamRoleCredential;
- use AlibabaCloud\Client\Credentials\RamRoleArnCredential;
- use AlibabaCloud\Client\Credentials\RsaKeyPairCredential;
- use AlibabaCloud\Client\Credentials\BearerTokenCredential;
- use AlibabaCloud\Client\Signature\ShaHmac256WithRsaSignature;
- use AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Credentials\Ini\VirtualAccessKeyCredential;
- use AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Credentials\Ini\VirtualRsaKeyPairCredential;
- /**
- * Class ClientTraitTest
- *
- * @package AlibabaCloud\Client\Tests\LowerthanVersion7_2\Unit\Client\Traits
- *
- * @coversDefaultClass \AlibabaCloud\Client\Traits\ClientTrait
- */
- class ClientTraitTest extends TestCase
- {
- /**
- * @var string
- */
- private static $accessKeyId;
- /**
- * @var string
- */
- private static $accessKeySecret;
- /**
- * @var string
- */
- private static $regionId;
- /**
- * @var string
- */
- private static $roleName;
- /**
- * @var string
- */
- private static $roleArn;
- /**
- * @var string
- */
- private static $roleSessionName;
- /**
- * @var string
- */
- private static $bearerToken;
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Client 'default' not found
- * @throws ClientException
- */
- public static function testGetDefaultClient()
- {
- AlibabaCloud::flush();
- AlibabaCloud::getDefaultClient();
- }
- public function setUp()
- {
- self::$regionId = 'cn-hangzhou';
- self::$accessKeyId = \getenv('ACCESS_KEY_ID');
- self::$accessKeySecret = \getenv('ACCESS_KEY_SECRET');
- self::$roleName = 'EcsRamRoleTest';
- self::$roleArn = 'acs:ram::1483445870618637:role/test';
- self::$roleSessionName = 'role_session_name';
- self::$bearerToken = 'BEARER_TOKEN';
- }
- /**
- * @throws ClientException
- */
- public function testClient()
- {
- AlibabaCloud::client(
- new AccessKeyCredential('foo', 'bar'),
- new ShaHmac256WithRsaSignature()
- )->name('client');
- self::assertInstanceOf(ShaHmac256WithRsaSignature::class, AlibabaCloud::get('client')->getSignature());
- }
- /**
- * @throws ClientException
- */
- public function testAccessKeyClient()
- {
- AlibabaCloud::accessKeyClient(self::$accessKeyId, self::$accessKeyId)->asDefaultClient();
- $credential = AlibabaCloud::getDefaultClient()->getCredential();
- self::assertInstanceOf(AccessKeyCredential::class, $credential);
- self::assertEquals(self::$accessKeyId, $credential->getAccessKeyId());
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey ID cannot be empty
- * @throws ClientException
- */
- public function testAccessKeyClientWithAccessKeyIdEmpty()
- {
- AlibabaCloud::accessKeyClient(
- '',
- self::$accessKeySecret
- )->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey ID format is invalid
- * @throws ClientException
- */
- public function testAccessKeyClientWithAccessKeyIdFormat()
- {
- AlibabaCloud::accessKeyClient(
- null,
- self::$accessKeySecret
- )->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey Secret cannot be empty
- * @throws ClientException
- */
- public function testAccessKeyClientWithAccessKeySecretEmpty()
- {
- AlibabaCloud::accessKeyClient(
- self::$accessKeyId,
- ''
- )->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey Secret format is invalid
- * @throws ClientException
- */
- public function testAccessKeyClientWithAccessKeySecretFormat()
- {
- AlibabaCloud::accessKeyClient(
- self::$accessKeyId,
- null
- )->asDefaultClient();
- }
- /**
- * @throws ClientException
- */
- public function testRamRoleArnClient()
- {
- AlibabaCloud::ramRoleArnClient(
- self::$accessKeyId,
- self::$accessKeySecret,
- self::$roleArn,
- self::$roleSessionName
- )->asDefaultClient();
- $credential = AlibabaCloud::getDefaultClient()->getCredential();
- self::assertInstanceOf(RamRoleArnCredential::class, $credential);
- self::assertEquals(self::$accessKeyId, $credential->getAccessKeyId());
- self::assertEquals(self::$accessKeySecret, $credential->getAccessKeySecret());
- self::assertEquals(self::$roleArn, $credential->getRoleArn());
- self::assertEquals(self::$roleSessionName, $credential->getRoleSessionName());
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey ID cannot be empty
- * @throws ClientException
- */
- public function testRamRoleArnClientWithAccessKeyIdEmpty()
- {
- AlibabaCloud::ramRoleArnClient(
- '',
- self::$accessKeySecret,
- self::$roleArn,
- self::$roleSessionName
- )->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey ID must be a string
- * @throws ClientException
- */
- public function testRamRoleArnClientWithAccessKeyIdFormat()
- {
- AlibabaCloud::ramRoleArnClient(
- null,
- self::$accessKeySecret,
- self::$roleArn,
- self::$roleSessionName
- )->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey Secret cannot be empty
- * @throws ClientException
- */
- public function testRamRoleArnClientWithAccessKeySecretEmpty()
- {
- AlibabaCloud::ramRoleArnClient(
- self::$accessKeyId,
- '',
- self::$roleArn,
- self::$roleSessionName
- )->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey Secret must be a string
- * @throws ClientException
- */
- public function testRamRoleArnClientWithAccessKeySecretFormat()
- {
- AlibabaCloud::ramRoleArnClient(
- self::$accessKeyId,
- null,
- self::$roleArn,
- self::$roleSessionName
- )->asDefaultClient();
- }
- /**
- * @throws ClientException
- */
- public function testEcsRamRoleClient()
- {
- AlibabaCloud::ecsRamRoleClient(self::$roleName)->asDefaultClient();
- $credential = AlibabaCloud::getDefaultClient()->getCredential();
- self::assertInstanceOf(EcsRamRoleCredential::class, $credential);
- self::assertEquals(self::$roleName, $credential->getRoleName());
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Role Name cannot be empty
- * @throws ClientException
- */
- public function testEcsRamRoleClientEmpty()
- {
- AlibabaCloud::ecsRamRoleClient('')->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Role Name must be a string
- * @throws ClientException
- */
- public function testEcsRamRoleClientFormat()
- {
- AlibabaCloud::ecsRamRoleClient(null)->asDefaultClient();
- }
- /**
- * @throws ClientException
- */
- public function testBearerTokenClient()
- {
- AlibabaCloud::bearerTokenClient(self::$bearerToken)->asDefaultClient();
- $credential = AlibabaCloud::getDefaultClient()->getCredential();
- self::assertInstanceOf(BearerTokenCredential::class, $credential);
- self::assertEquals('', $credential->getAccessKeyId());
- self::assertEquals('', $credential->getAccessKeySecret());
- self::assertEquals(self::$bearerToken, $credential->getBearerToken());
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Bearer Token cannot be empty
- * @throws ClientException
- */
- public function testBearerTokenClientEmpty()
- {
- AlibabaCloud::bearerTokenClient('')->asDefaultClient();
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Bearer Token must be a string
- * @throws ClientException
- */
- public function testBearerTokenClientFormat()
- {
- AlibabaCloud::bearerTokenClient(null)->asDefaultClient();
- }
- /**
- * @throws ClientException
- */
- public function testStsClient()
- {
- AlibabaCloud::stsClient('key', 'secret', 'token')->name('sts');
- self::assertInstanceOf(StsCredential::class, AlibabaCloud::get('sts')->getCredential());
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey ID cannot be empty
- * @throws ClientException
- */
- public function testStsClientWithPublicKeyIdEmpty()
- {
- AlibabaCloud::stsClient('', 'secret')
- ->name('sts');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey ID must be a string
- * @throws ClientException
- */
- public function testStsClientWithPublicKeyIdFormat()
- {
- AlibabaCloud::stsClient(null, 'secret')
- ->name('sts');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey Secret cannot be empty
- * @throws ClientException
- */
- public function testStsClientWithPrivateKeyFileEmpty()
- {
- AlibabaCloud::stsClient('key', '')
- ->name('sts');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage AccessKey Secret must be a string
- * @throws ClientException
- */
- public function testStsClientWithPrivateKeyFileFormat()
- {
- AlibabaCloud::stsClient('key', null)
- ->name('sts');
- }
- /**
- * @throws ClientException
- */
- public function testRsaKeyPairClient()
- {
- AlibabaCloud::rsaKeyPairClient('key', VirtualAccessKeyCredential::ok())
- ->name('rsa');
- self::assertInstanceOf(
- RsaKeyPairCredential::class,
- AlibabaCloud::get('rsa')->getCredential()
- );
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Public Key ID cannot be empty
- * @throws ClientException
- */
- public function testRsaKeyPairClientWithPublicKeyIdEmpty()
- {
- AlibabaCloud::rsaKeyPairClient('', 'privateKeyFile')
- ->name('rsa');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Public Key ID must be a string
- * @throws ClientException
- */
- public function testRsaKeyPairClientWithPublicKeyIdFormat()
- {
- AlibabaCloud::rsaKeyPairClient(null, 'privateKeyFile')
- ->name('rsa');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Private Key File cannot be empty
- * @throws ClientException
- */
- public function testRsaKeyPairClientWithPrivateKeyFileEmpty()
- {
- AlibabaCloud::rsaKeyPairClient('publicKeyId', '')
- ->name('rsa');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Private Key File must be a string
- * @throws ClientException
- */
- public function testRsaKeyPairClientWithPrivateKeyFileFormat()
- {
- AlibabaCloud::rsaKeyPairClient('publicKeyId', null)
- ->name('rsa');
- }
- /**
- * @throws ClientException
- */
- public function testGet()
- {
- // setup
- $accessKeyId = uniqid('', true);
- $accessKeySecret = uniqid('', true);
- AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->name('client1');
- static::assertEquals(
- $accessKeyId,
- AlibabaCloud::get('client1')->getCredential()->getAccessKeyId()
- );
- try {
- AlibabaCloud::get('None')->getCredential()->getAccessKeyId();
- } catch (ClientException $e) {
- static::assertEquals(SDK::CLIENT_NOT_FOUND, $e->getErrorCode());
- }
- }
- /**
- * @throws ClientException
- */
- public function testIsDebug()
- {
- $accessKeyId = uniqid('', true);
- $accessKeySecret = uniqid('', true);
- AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->name('client1');
- AlibabaCloud::get('client1')->debug(true);
- self::assertTrue(AlibabaCloud::get('client1')->isDebug());
- }
- /**
- * @throws ClientException
- */
- public function testGetSignature()
- {
- $accessKeyId = uniqid('', true);
- $accessKeySecret = uniqid('', true);
- AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->name('client1');
- static::assertInstanceOf(ShaHmac1Signature::class, AlibabaCloud::get('client1')->getSignature());
- }
- /**
- * @throws ClientException
- */
- public function testDel()
- {
- // Setup
- $clientName = 'test';
- $accessKeyId = uniqid('', true);
- $accessKeySecret = uniqid('', true);
- // Test
- AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->name($clientName);
- static::assertEquals(true, AlibabaCloud::has($clientName));
- AlibabaCloud::del($clientName);
- static::assertEquals(false, AlibabaCloud::has($clientName));
- }
- /**
- * @throws ClientException
- */
- public function testAll()
- {
- $accessKeyId = uniqid('', true);
- $accessKeySecret = uniqid('', true);
- AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->name('client1');
- AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->name('client2');
- AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->name('client3');
- static::assertArrayHasKey('client3', AlibabaCloud::all());
- }
- /**
- * @throws ClientException
- */
- public function testLoadWithFiles()
- {
- AlibabaCloud::load(
- VirtualRsaKeyPairCredential::ok(),
- VirtualAccessKeyCredential::ok()
- );
- static::assertNotNull(AlibabaCloud::all());
- }
- /**
- * @throws ClientException
- */
- public function testLoad()
- {
- AlibabaCloud::load();
- static::assertNotNull(AlibabaCloud::all());
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Client Name cannot be empty
- *
- * @throws ClientException
- */
- public function testDelEmpty()
- {
- AlibabaCloud::del('');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Client Name must be a string
- *
- * @throws ClientException
- */
- public function testDelFormat()
- {
- AlibabaCloud::del(null);
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Client Name cannot be empty
- *
- * @throws ClientException
- */
- public function testHasEmpty()
- {
- AlibabaCloud::has('');
- }
- /**
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- * @expectedExceptionMessage Client Name must be a string
- *
- * @throws ClientException
- */
- public function testHasFormat()
- {
- AlibabaCloud::has(null);
- }
- /**
- * @expectedExceptionMessage Client Name cannot be empty
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- *
- * @throws ClientException
- */
- public function testSetEmpty()
- {
- AlibabaCloud::set('', AlibabaCloud::bearerTokenClient('token'));
- }
- /**
- * @expectedExceptionMessage Client Name must be a string
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- *
- * @throws ClientException
- */
- public function testSetFormat()
- {
- AlibabaCloud::set(null, AlibabaCloud::bearerTokenClient('token'));
- }
- /**
- * @throws ClientException
- */
- public function testSet()
- {
- $name = uniqid('', true);
- AlibabaCloud::set($name, AlibabaCloud::bearerTokenClient('token'));
- self::assertTrue(AlibabaCloud::has($name));
- AlibabaCloud::del($name);
- }
- /**
- * @expectedExceptionMessage Client Name cannot be empty
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- *
- * @throws ClientException
- */
- public function testGetEmpty()
- {
- AlibabaCloud::get('');
- }
- /**
- * @expectedExceptionMessage Client Name must be a string
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- *
- * @throws ClientException
- */
- public function testGetFormat()
- {
- AlibabaCloud::get(null);
- }
- /**
- * @expectedExceptionMessage Client 'notFound' not found
- * @expectedException \AlibabaCloud\Client\Exception\ClientException
- *
- * @throws ClientException
- */
- public function testGetNotFound()
- {
- AlibabaCloud::get('notFound');
- }
- }
|