1+ <?php
2+
3+ namespace OpenStack \Sample \Identity \v3 ;
4+
5+ use OpenStack \Common \Error \BadResponseError ;
6+ use OpenStack \Identity \v3 \Models \Credential ;
7+
8+ class CredentialTest extends TestCase
9+ {
10+ public function testCreate (): Credential
11+ {
12+ /** @var $credential \OpenStack\Identity\v3\Models\Role */
13+ require_once $ this ->sampleFile ('credentials/create.php ' , [
14+ '{blob} ' => '{"access":"181920","secret":"secretKey"} ' ,
15+ '{type} ' => 'ec2 ' ,
16+ ]);
17+ $ this ->assertInstanceOf (Credential::class, $ credential );
18+
19+ return $ credential ;
20+ }
21+
22+ /**
23+ * @depends testCreate
24+ */
25+ public function testList (Credential $ createdCredential ): void
26+ {
27+ $ found = false ;
28+ require_once $ this ->sampleFile (
29+ 'credentials/list.php ' ,
30+ [
31+ '/** @var $credential \OpenStack\Identity\v3\Models\Credential */ ' => <<<'PHP'
32+ /** @var $credential \OpenStack\Identity\v3\Models\Credential */
33+ if ($credential->id === $createdCredential->id) {
34+ $found = true;
35+ }
36+ PHP
37+ ,
38+ ]
39+ );
40+
41+ $ this ->assertTrue ($ found );
42+ }
43+
44+ /**
45+ * @depends testCreate
46+ */
47+ public function testRead (Credential $ createdCredential )
48+ {
49+ /** @var $credential \OpenStack\Identity\v3\Models\Credential */
50+ require_once $ this ->sampleFile (
51+ 'credentials/read.php ' ,
52+ ['{credentialId} ' => $ createdCredential ->id ]
53+ );
54+
55+ $ this ->assertInstanceOf (Credential::class, $ credential );
56+ $ this ->assertEquals ($ createdCredential ->blob , $ credential ->blob );
57+ $ this ->assertEquals ($ createdCredential ->type , $ credential ->type );
58+ }
59+
60+ /**
61+ * @depends testCreate
62+ */
63+ public function testUpdate (Credential $ createdCredential )
64+ {
65+ $ newBlob = '{"access":"181920","secret":"newSecretKey"} ' ;
66+
67+ /** @var $credential \OpenStack\Identity\v3\Models\Credential */
68+ require_once $ this ->sampleFile (
69+ 'credentials/update.php ' ,
70+ [
71+ '{credentialId} ' => $ createdCredential ->id ,
72+ '{blob} ' => $ newBlob ,
73+ '{type} ' => 'ec3 ' ,
74+ ]
75+ );
76+
77+ $ this ->assertInstanceOf (Credential::class, $ credential );
78+ $ this ->assertEquals ($ newBlob , $ credential ->blob );
79+ $ this ->assertEquals ('ec3 ' , $ credential ->type );
80+ }
81+
82+
83+ /**
84+ * @depends testCreate
85+ */
86+ public function testDelete (Credential $ createdCredential ): void
87+ {
88+ require_once $ this ->sampleFile (
89+ 'credentials/delete.php ' ,
90+ [
91+ '{credentialId} ' => $ createdCredential ->id ,
92+ ]
93+ );
94+
95+ $ found = false ;
96+ foreach ($ this ->getService ()->listCredentials () as $ credential ) {
97+ if ($ credential ->id === $ createdCredential ->id ) {
98+ $ found = true ;
99+ }
100+ }
101+
102+ $ this ->assertFalse ($ found );
103+
104+ $ this ->expectException (BadResponseError::class);
105+ $ createdCredential ->retrieve ();
106+ }
107+ }
0 commit comments