Completed
Push — master ( 5d89d9...b6c216 )
by Robbie
15s queued 10s
created

DatabaseStoreTest   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 4
dl 0
loc 28
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 8 2
A getStore() 0 7 1
A testDataCodecIntegrity() 0 8 2
1
<?php
2
3
namespace SilverStripe\HybridSessions\Tests;
4
5
use SilverStripe\ORM\DB;
6
use SilverStripe\ORM\Connect\MySQLDatabase;
7
use SilverStripe\Core\Injector\Injector;
8
use SilverStripe\HybridSessions\Store\DatabaseStore;
9
10
class DatabaseStoreTest extends AbstractTest
11
{
12
    protected function setUp()
13
    {
14
        parent::setUp();
15
16
        if (!DB::get_conn() instanceof MySQLDatabase) {
17
            $this->markTestSkipped('Only MySQL databases are supported');
18
        }
19
    }
20
21
    protected function getStore()
22
    {
23
        $store = Injector::inst()->get(DatabaseStore::class);
24
        $store->setKey(uniqid());
25
26
        return $store;
27
    }
28
29
    public function testDataCodecIntegrity()
30
    {
31
        for ($i = 0; $i < 1000; ++$i) {
32
            $data = random_bytes(1024 * 4);
33
34
            $this->assertEquals($data, DatabaseStore::binaryDataJsonDecode(DatabaseStore::binaryDataJsonEncode($data)));
35
        }
36
    }
37
}
38