Passed
Pull Request — master (#9)
by Csaba
02:38
created

IntegrationTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 51
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 4
dl 0
loc 51
c 0
b 0
f 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A testOnRealData() 0 48 3
1
<?php
2
namespace Fathomminds\Rest\Tests\Integration\DynamoDb;
3
4
use Fathomminds\Rest\Exceptions\RestException;
5
use Fathomminds\Rest\Helpers\Uuid;
6
use Fathomminds\Rest\Examples\DynamoDb\Models\FooModel;
7
8
class IntegrationTest extends TestCase
9
{
10
    public function testOnRealData()
11
    {
12
        $model = new FooModel;
13
        $resource = new \StdClass;
14
        $resource->_id = (new Uuid)->generate();
15
        $resource->title = 'CREATED';
16
        $model->createFromObject($resource);
17
18
        $model->create();
19
        $id = $model->getProperty('_id');
20
        $this->assertTrue(!empty($id));
21
22
        try {
23
            $model->create();
24
            $this->assertEquals(1, 0); //Shouldn't reach this line
25
        } catch (RestException $ex) {
26
            $this->assertEquals('Primary key collision', $ex->getMessage());
27
        }
28
29
        $model = new FooModel;
30
        $list = $model->all();
31
        $this->assertCount(1, $list);
32
        $this->assertEquals($id, $list[0]->_id);
33
        $this->assertEquals('CREATED', $list[0]->title);
34
35
        $model = new FooModel;
36
        $model->one($id);
37
        $this->assertEquals($id, $model->getProperty('_id'));
38
        $this->assertEquals('CREATED', $model->getProperty('title'));
39
40
        $model->setProperty('title', 'UPDATED');
41
        $model->update();
42
43
        $model = new FooModel;
44
        $model->one($id);
45
        $this->assertEquals($id, $model->getProperty('_id'));
46
        $this->assertEquals('UPDATED', $model->getProperty('title'));
47
48
        $model->delete();
49
        $this->assertTrue(empty(get_object_vars($model->getResource())));
50
51
        try {
52
            $model = new FooModel;
53
            $model->one($id);
54
        } catch (RestException $ex) {
55
            $this->assertEquals('Resource does not exist', $ex->getMessage());
56
        }
57
    }
58
}
59