Passed
Branch develop (ae1154)
by Csaba
02:58
created

IntegrationTest::testOnRealData()   A

Complexity

Conditions 3
Paths 9

Size

Total Lines 48
Code Lines 36

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 48
c 0
b 0
f 0
rs 9.125
cc 3
eloc 36
nc 9
nop 0
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