MessageCachingServiceTest   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

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

6 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 7 1
A tearDown() 0 6 1
A testGetMessagesJson() 0 17 1
A testGetLastRefreshTimestamp() 0 11 1
A testRefreshMessageCacheEvent() 0 6 1
A assertMessagesJsonEquals() 0 8 1
1
<?php
2
3
use Mockery as m;
4
use JsLocalization\Facades\MessageCachingService;
5
6
class MessageCachingServiceTest extends TestCase
7
{
8
9
    public function setUp()
10
    {
11
        parent::setUp();
12
13
        Cache::forget(JsLocalization\Caching\MessageCachingService::CACHE_KEY);
14
        Cache::forget(JsLocalization\Caching\MessageCachingService::CACHE_TIMESTAMP_KEY);
15
    }
16
17
    public function tearDown()
18
    {
19
        m::close();
20
21
        parent::tearDown();
22
    }
23
24
25
    public function testGetMessagesJson()
26
    {
27
        $this->assertMessagesJsonEquals($this->testMessagesFlat);
28
29
        // Add another string, but without refreshing the cache:
30
31
        $originalTestMessages = $this->testMessagesFlat;
32
        $this->addTestMessage('en','test.new_message', "This is a new message.");
33
34
        $this->assertMessagesJsonEquals($originalTestMessages);
35
36
        // Now refresh the cache:
37
38
        MessageCachingService::refreshCache();
39
40
        $this->assertMessagesJsonEquals($this->testMessagesFlat);
41
    }
42
43
    public function testGetLastRefreshTimestamp()
44
    {
45
        $timestamp = MessageCachingService::getLastRefreshTimestamp()->getTimestamp();
46
        $this->assertEquals(0, $timestamp);
47
48
        MessageCachingService::refreshCache();
49
        $refreshTime = time();
50
51
        $timestamp = MessageCachingService::getLastRefreshTimestamp()->getTimestamp();
52
        $this->assertEquals($refreshTime, $timestamp);
53
    }
54
55
    public function testRefreshMessageCacheEvent()
56
    {
57
        Event::shouldReceive('fire')->once()->with('JsLocalization.registerMessages');
58
59
        MessageCachingService::refreshCache();
60
    }
61
62
    private function assertMessagesJsonEquals(array $expectedMessages)
63
    {
64
        $messagesJson = MessageCachingService::getMessagesJson();
65
        $this->assertJson($messagesJson);
66
67
        $messages = json_decode($messagesJson, true);
68
        $this->assertEquals($expectedMessages, $messages);
69
    }
70
71
}
72