Completed
Push — master ( 5accd6...21cd89 )
by Guillermo A.
02:00
created

CreateTableRequestTest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Importance

Changes 4
Bugs 0 Features 0
Metric Value
wmc 6
eloc 20
c 4
b 0
f 0
dl 0
loc 44
rs 10

6 Methods

Rating   Name   Duplication   Size   Complexity  
A testSetSortKey() 0 5 1
A testSetReadCapacityUnits() 0 5 1
A testSSESpecification() 0 5 1
A testSetBillingMode() 0 5 1
A testSetPartitionKey() 0 5 1
A testWriteCapacityUnits() 0 5 1
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
    }
57
}
58