Passed
Push — master ( c0f464...9c6e80 )
by Gabriel
11:21
created

TransactionTraitTest::test_cast_metadata()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 1
eloc 6
c 1
b 0
f 1
nc 1
nop 0
dl 0
loc 11
rs 10
1
<?php
2
3
namespace ByTIC\Payments\Tests\Models\Transactions;
4
5
use ByTIC\Payments\Models\Transactions\Transaction;
6
use ByTIC\Payments\Models\Transactions\Transactions;
7
use ByTIC\Payments\Tests\AbstractTest;
8
use Nip\Database\Query\Insert;
9
10
/**
11
 * Class TransactionTraitTest
12
 * @package ByTIC\Payments\Tests\Models\Transactions
13
 */
14
class TransactionTraitTest extends AbstractTest
15
{
16
    public function test_cast_metadata()
17
    {
18
        $item = new Transaction();
19
20
        $metadata = $item->metadata;
21
        self::assertInstanceOf(\ArrayObject::class, $metadata);
22
23
        $item->addMedata('test', 99);
24
        self::assertSame(99, $item->metadata['test']);
25
26
        self::assertSame('{"test":99}', $item->getPropertyRaw('metadata'));
27
    }
28
29
    public function test_cast_metadata_empty()
30
    {
31
        $repository = \Mockery::mock(Transactions::class)->shouldAllowMockingProtectedMethods()->makePartial();
32
        $repository->shouldReceive('insertQuery')->once()->andReturn(new Insert());
33
        $repository->shouldReceive('performInsert')->once();
34
        $repository->bootTransactionsTrait();
35
36
        $item = new Transaction();
37
        $item->setManager($repository);
38
        $item->insert();
39
40
        self::assertSame('{}', $item->getPropertyRaw('metadata'));
41
    }
42
}