Completed
Push — master ( 89c61c...e15fb0 )
by Guillermo A.
01:59
created

CreateTableRequestTest::testAddTag()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
c 1
b 0
f 0
dl 0
loc 7
rs 10
cc 1
nc 1
nop 0
1
<?php
2
3
namespace GuillermoandraeTest\Db\DynamoDb;
4
5
use Aws\DynamoDb\Marshaler;
6
use Guillermoandrae\Db\DynamoDb\AttributeTypes;
7
use Guillermoandrae\Db\DynamoDb\BillingModes;
8
use Guillermoandrae\Db\DynamoDb\CreateTableRequest;
9
use Guillermoandrae\Db\DynamoDb\KeyTypes;
10
use PHPUnit\Framework\TestCase;
11
12
final class CreateTableRequestTest extends TestCase
13
{
14
    private $data = ['name' => ['attributeType' => AttributeTypes::STRING, 'keyType' => KeyTypes::HASH]];
15
16
    public function testSetPartitionKey()
17
    {
18
        $request = new CreateTableRequest(new Marshaler(), 'test');
19
        $request->setPartitionKey('test', AttributeTypes::STRING);
20
        $this->assertEquals(KeyTypes::HASH, $request->toArray()['KeySchema'][0]['KeyType']);
21
    }
22
23
    public function testSetSortKey()
24
    {
25
        $request = new CreateTableRequest(new Marshaler(), 'test');
26
        $request->setSortKey('test', AttributeTypes::STRING);
27
        $this->assertEquals(KeyTypes::RANGE, $request->toArray()['KeySchema'][0]['KeyType']);
28
    }
29
30
    public function testSetReadCapacityUnits()
31
    {
32
        $request = new CreateTableRequest(new Marshaler(), 'test', $this->data);
33
        $request->setReadCapacityUnits(10);
34
        $this->assertEquals(10, $request->toArray()['ProvisionedThroughput']['ReadCapacityUnits']);
35
    }
36
    
37
    public function testWriteCapacityUnits()
38
    {
39
        $request = new CreateTableRequest(new Marshaler(), 'test', $this->data);
40
        $request->setWriteCapacityUnits(20);
41
        $this->assertEquals(20, $request->toArray()['ProvisionedThroughput']['WriteCapacityUnits']);
42
    }
43
44
    public function testSetBillingMode()
45
    {
46
        $request = new CreateTableRequest(new Marshaler(), 'test', $this->data);
47
        $request->setBillingMode(BillingModes::PAY_PER_REQUEST);
48
        $this->assertEquals(BillingModes::PAY_PER_REQUEST, $request->toArray()['BillingMode']);
49
    }
50
51
    public function testSSESpecification()
52
    {
53
        $request = new CreateTableRequest(new Marshaler(), 'test', $this->data);
54
        $request->setSSESpecification(true, 'someKey');
55
        $this->assertEquals('someKey', $request->toArray()['SSESpecification']['KMSMasterKeyId']);
56
        $request->setSSESpecification(false);
57
        $this->assertArrayNotHasKey('SSESpecification', $request->toArray());
58
    }
59
60
    public function testAddTag()
61
    {
62
        $request = new CreateTableRequest(new Marshaler(), 'test', $this->data);
63
        $request->addTag('someKey', 'someValue');
64
        $request->addTag('anotherKey', 'anotherValue');
65
        $this->assertEquals('someValue', $request->toArray()['Tags'][0]['Value']);
66
        $this->assertEquals('anotherValue', $request->toArray()['Tags'][1]['Value']);
67
    }
68
}
69