MessageCachingServiceTest::testGetMessagesJson()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 17
rs 9.7
c 0
b 0
f 0
cc 1
nc 1
nop 0
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