Passed
Pull Request — develop (#18)
by Csaba
02:33
created

IntegrationTest::testOnRealData()   A

Complexity

Conditions 3
Paths 9

Size

Total Lines 47
Code Lines 35

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 47
c 0
b 0
f 0
rs 9.0303
cc 3
eloc 35
nc 9
nop 0
1
<?php
2
namespace Fathomminds\Rest\Tests\Integration\Clusterpoint;
3
4
use Fathomminds\Rest\Exceptions\RestException;
5
use Fathomminds\Rest\Examples\Clusterpoint\Models\FooModel;
6
use Fathomminds\Rest\Examples\Clusterpoint\Models\Schema\FooSchema;
7
8
class IntegrationTest extends TestCase
9
{
10
    public function testOnRealData()
11
    {
12
        $model = new FooModel;
13
        $resource = new FooSchema;
14
        $resource->title = 'CREATED';
15
        $model->use($resource);
16
17
        $model->create();
18
        $id = $model->resource()->_id;
19
        $this->assertTrue(!empty($id));
20
21
        try {
22
            $model->create();
23
            $this->assertEquals(1, 0); //Shouldn't reach this line
24
        } catch (RestException $ex) {
25
            $this->assertEquals('Primary key collision', $ex->getMessage());
26
        }
27
28
        $model = new FooModel;
29
        $list = $model->all();
30
        $this->assertCount(1, $list);
31
        $this->assertEquals($id, $list[0]->_id);
32
        $this->assertEquals('CREATED', $list[0]->title);
33
34
        $model = new FooModel;
35
        $model->one($id);
36
        $this->assertEquals($id, $model->resource()->_id);
37
        $this->assertEquals('CREATED', $model->resource()->title);
38
39
        $model->resource()->title = 'UPDATED';
40
        $model->update();
41
42
        $model = new FooModel;
43
        $model->one($id);
44
        $this->assertEquals($id, $model->resource()->_id);
45
        $this->assertEquals('UPDATED', $model->resource()->title);
46
47
        $model->delete();
48
        $this->assertTrue(empty(get_object_vars($model->resource())));
49
50
        try {
51
            $model = new FooModel;
52
            $model->one($id);
53
        } catch (RestException $ex) {
54
            $this->assertEquals('Resource does not exist', $ex->getMessage());
55
        }
56
    }
57
}
58