Skip to content

Commit a8d657a

Browse files
authored
Test sts (#202)
* Add Tests on STS * Add tests on STS
1 parent 350716b commit a8d657a

File tree

6 files changed

+99
-57
lines changed

6 files changed

+99
-57
lines changed

Sts/Input/AssumeRoleRequest.php

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -198,58 +198,53 @@ public function requestBody(): string
198198
$payload['RoleSessionName'] = $this->RoleSessionName;
199199

200200
(static function (array $input) use (&$payload, $indices) {
201-
$indices->kd8fbed2 = 0;
201+
$indices->kfc822c1 = 0;
202202
foreach ($input as $value) {
203-
++$indices->kd8fbed2;
203+
++$indices->kfc822c1;
204204

205205
if (null !== $value) {
206206
(static function (PolicyDescriptorType $input) use (&$payload, $indices) {
207207
if (null !== $v = $input->getarn()) {
208-
$payload["PolicyArns.{$indices->kd8fbed2}.arn"] = $v;
208+
$payload["PolicyArns.member.{$indices->kfc822c1}.arn"] = $v;
209209
}
210210
})($value);
211211
}
212212
}
213213
})($this->PolicyArns);
214-
215214
if (null !== $v = $this->Policy) {
216215
$payload['Policy'] = $v;
217216
}
218-
219217
if (null !== $v = $this->DurationSeconds) {
220218
$payload['DurationSeconds'] = $v;
221219
}
222220

223221
(static function (array $input) use (&$payload, $indices) {
224-
$indices->k848eed0 = 0;
222+
$indices->k26dfc14 = 0;
225223
foreach ($input as $value) {
226-
++$indices->k848eed0;
224+
++$indices->k26dfc14;
227225

228226
if (null !== $value) {
229227
(static function (Tag $input) use (&$payload, $indices) {
230-
$payload["Tags.{$indices->k848eed0}.Key"] = $input->getKey();
231-
$payload["Tags.{$indices->k848eed0}.Value"] = $input->getValue();
228+
$payload["Tags.member.{$indices->k26dfc14}.Key"] = $input->getKey();
229+
$payload["Tags.member.{$indices->k26dfc14}.Value"] = $input->getValue();
232230
})($value);
233231
}
234232
}
235233
})($this->Tags);
236234

237235
(static function (array $input) use (&$payload, $indices) {
238-
$indices->k296eb4e = 0;
236+
$indices->k0ec5280 = 0;
239237
foreach ($input as $value) {
240-
++$indices->k296eb4e;
241-
$payload["TransitiveTagKeys.{$indices->k296eb4e}"] = $value;
238+
++$indices->k0ec5280;
239+
$payload["TransitiveTagKeys.member.{$indices->k0ec5280}"] = $value;
242240
}
243241
})($this->TransitiveTagKeys);
244-
245242
if (null !== $v = $this->ExternalId) {
246243
$payload['ExternalId'] = $v;
247244
}
248-
249245
if (null !== $v = $this->SerialNumber) {
250246
$payload['SerialNumber'] = $v;
251247
}
252-
253248
if (null !== $v = $this->TokenCode) {
254249
$payload['TokenCode'] = $v;
255250
}

Tests/Integration/StsClientTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class StsClientTest extends TestCase
1414
{
1515
public function testAssumeRole(): void
1616
{
17-
self::markTestIncomplete('Not implemented');
17+
self::markTestSkipped('No Docker image for STS');
1818

1919
$client = $this->getClient();
2020

@@ -46,7 +46,7 @@ public function testAssumeRole(): void
4646

4747
public function testGetCallerIdentity(): void
4848
{
49-
self::markTestIncomplete('Not implemented');
49+
self::markTestSkipped('No Docker image for STS');
5050

5151
$client = $this->getClient();
5252

Tests/Unit/Input/AssumeRoleRequestTest.php

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,49 @@ class AssumeRoleRequestTest extends TestCase
1111
{
1212
public function testRequestBody(): void
1313
{
14-
self::markTestIncomplete('Not implemented');
15-
1614
$input = new AssumeRoleRequest([
17-
'RoleArn' => 'change me',
18-
'RoleSessionName' => 'change me',
19-
'PolicyArns' => [new PolicyDescriptorType([
20-
'arn' => 'change me',
21-
])],
22-
'Policy' => 'change me',
23-
'DurationSeconds' => 1337,
15+
'RoleArn' => 'arn:aws::iam::123456789012:role/demo',
16+
'RoleSessionName' => 'John-session',
17+
'PolicyArns' => [
18+
new PolicyDescriptorType(['arn' => 'arn:aws:iam::123456789012:policy/demopolicy1']),
19+
new PolicyDescriptorType(['arn' => 'arn:aws:iam::123456789012:policy/demopolicy2']),
20+
],
21+
'Policy' => '{"Version":"2012-10-17","Statement":[{"Sid": "Stmt1","Effect": "Allow","Action": "s3:*","Resource": "*"}]}',
22+
'DurationSeconds' => 1800,
2423
'Tags' => [new Tag([
25-
'Key' => 'change me',
26-
'Value' => 'change me',
24+
'Key' => 'Project',
25+
'Value' => 'Pegasus',
26+
]), new Tag([
27+
'Key' => 'Team',
28+
'Value' => 'Engineering',
29+
]), new Tag([
30+
'Key' => 'Cost-Center',
31+
'Value' => '12345',
2732
])],
28-
'TransitiveTagKeys' => ['change me'],
29-
'ExternalId' => 'change me',
30-
'SerialNumber' => 'change me',
31-
'TokenCode' => 'change me',
33+
'TransitiveTagKeys' => ['Project', 'Cost-Center'],
34+
'ExternalId' => '123ABC',
3235
]);
3336

37+
/** @see https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html */
3438
$expected = trim('
35-
Action=AssumeRole
36-
&Version=2011-06-15
37-
&ChangeIt=Change+it
38-
');
39+
Action=AssumeRole
40+
&Version=2011-06-15
41+
&RoleArn=arn%3Aaws%3A%3Aiam%3A%3A123456789012%3Arole%2Fdemo
42+
&RoleSessionName=John-session
43+
&PolicyArns.member.1.arn=arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2Fdemopolicy1
44+
&PolicyArns.member.2.arn=arn%3Aaws%3Aiam%3A%3A123456789012%3Apolicy%2Fdemopolicy2
45+
&Policy=%7B%22Version%22%3A%222012-10-17%22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A+%22Stmt1%22%2C%22Effect%22%3A+%22Allow%22%2C%22Action%22%3A+%22s3%3A%2A%22%2C%22Resource%22%3A+%22%2A%22%7D%5D%7D
46+
&DurationSeconds=1800
47+
&Tags.member.1.Key=Project
48+
&Tags.member.1.Value=Pegasus
49+
&Tags.member.2.Key=Team
50+
&Tags.member.2.Value=Engineering
51+
&Tags.member.3.Key=Cost-Center
52+
&Tags.member.3.Value=12345
53+
&TransitiveTagKeys.member.1=Project
54+
&TransitiveTagKeys.member.2=Cost-Center
55+
&ExternalId=123ABC
56+
');
3957

4058
self::assertEquals($expected, \str_replace('&', "\n&", $input->requestBody()));
4159
}

Tests/Unit/Input/GetCallerIdentityRequestTest.php

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,13 @@ class GetCallerIdentityRequestTest extends TestCase
99
{
1010
public function testRequestBody(): void
1111
{
12-
self::markTestIncomplete('Not implemented');
13-
14-
$input = new GetCallerIdentityRequest([
15-
16-
]);
12+
$input = new GetCallerIdentityRequest();
1713

14+
/** @see https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html */
1815
$expected = trim('
19-
Action=GetCallerIdentity
20-
&Version=2011-06-15
21-
&ChangeIt=Change+it
22-
');
16+
Action=GetCallerIdentity
17+
&Version=2011-06-15
18+
');
2319

2420
self::assertEquals($expected, \str_replace('&', "\n&", $input->requestBody()));
2521
}

Tests/Unit/Result/AssumeRoleResponseTest.php

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,41 @@ class AssumeRoleResponseTest extends TestCase
1111
{
1212
public function testAssumeRoleResponse(): void
1313
{
14-
self::markTestIncomplete('Not implemented');
15-
1614
$response = new SimpleMockedResponse('<?xml version="1.0" encoding="UTF-8"?>
17-
<ChangeIt/>
15+
<AssumeRoleResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
16+
<AssumeRoleResult>
17+
<AssumedRoleUser>
18+
<Arn>arn:aws:sts::123456789012:assumed-role/demo/TestAR</Arn>
19+
<AssumedRoleId>ARO123EXAMPLE123:TestAR</AssumedRoleId>
20+
</AssumedRoleUser>
21+
<Credentials>
22+
<AccessKeyId>ASIAIOSFODNN7EXAMPLE</AccessKeyId>
23+
<SecretAccessKey>wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY</SecretAccessKey>
24+
<SessionToken>
25+
AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
26+
LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
27+
QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
28+
9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
29+
+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
30+
</SessionToken>
31+
<Expiration>2019-11-09T13:34:41Z</Expiration>
32+
</Credentials>
33+
<PackedPolicySize>6</PackedPolicySize>
34+
</AssumeRoleResult>
35+
<ResponseMetadata>
36+
<RequestId>c6104cbe-af31-11e0-8154-cbc7ccf896c7</RequestId>
37+
</ResponseMetadata>
38+
</AssumeRoleResponse>
1839
');
1940

2041
$result = new AssumeRoleResponse($response, new MockHttpClient());
2142

22-
// self::assertTODO(expected, $result->getCredentials());
23-
// self::assertTODO(expected, $result->getAssumedRoleUser());
24-
self::assertSame(1337, $result->getPackedPolicySize());
43+
self::assertSame('arn:aws:sts::123456789012:assumed-role/demo/TestAR', $result->getAssumedRoleUser()->getArn());
44+
self::assertSame('ARO123EXAMPLE123:TestAR', $result->getAssumedRoleUser()->getAssumedRoleId());
45+
self::assertSame('ASIAIOSFODNN7EXAMPLE', $result->getCredentials()->getAccessKeyId());
46+
self::assertSame('wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY', $result->getCredentials()->getSecretAccessKey());
47+
self::assertStringContainsString('AQoDYXdzEPT', $result->getCredentials()->getSessionToken());
48+
self::assertSame('20191109', $result->getCredentials()->getExpiration()->format('Ymd'));
49+
self::assertSame(6, $result->getPackedPolicySize());
2550
}
2651
}

Tests/Unit/Result/GetCallerIdentityResponseTest.php

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,24 @@ class GetCallerIdentityResponseTest extends TestCase
1111
{
1212
public function testGetCallerIdentityResponse(): void
1313
{
14-
self::markTestIncomplete('Not implemented');
15-
14+
/** @see https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html */
1615
$response = new SimpleMockedResponse('<?xml version="1.0" encoding="UTF-8"?>
17-
<ChangeIt/>
16+
<GetCallerIdentityResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
17+
<GetCallerIdentityResult>
18+
<Arn>arn:aws:sts::123456789012:assumed-role/my-role-name/my-role-session-name</Arn>
19+
<UserId>ARO123EXAMPLE123:my-role-session-name</UserId>
20+
<Account>123456789012</Account>
21+
</GetCallerIdentityResult>
22+
<ResponseMetadata>
23+
<RequestId>01234567-89ab-cdef-0123-456789abcdef</RequestId>
24+
</ResponseMetadata>
25+
</GetCallerIdentityResponse>
1826
');
1927

2028
$result = new GetCallerIdentityResponse($response, new MockHttpClient());
2129

22-
self::assertStringContainsString('change it', $result->getUserId());
23-
self::assertStringContainsString('change it', $result->getAccount());
24-
self::assertStringContainsString('change it', $result->getArn());
30+
self::assertStringContainsString('ARO123EXAMPLE123:my-role-session-name', $result->getUserId());
31+
self::assertStringContainsString('123456789012', $result->getAccount());
32+
self::assertStringContainsString('arn:aws:sts::123456789012:assumed-role/my-role-name/my-role-session-name', $result->getArn());
2533
}
2634
}

0 commit comments

Comments
 (0)