-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathFlashTest.php
More file actions
69 lines (61 loc) · 2.04 KB
/
Copy pathFlashTest.php
File metadata and controls
69 lines (61 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
use GT\Session\Flash;
use GT\Session\FlashMessage;
use GT\Session\SessionStoreInterface;
use PHPUnit\Framework\TestCase;
class FlashTest extends TestCase {
public function testPut():void {
$sessionStore = self::createMock(SessionStoreInterface::class);
$sessionStore->expects(self::once())
->method("get")
->with("queue.test")
->willReturn(null);
$sessionStore->expects(self::once())
->method("set")
->with(
self::equalTo("queue.test"),
self::isInstanceOf(SplQueue::class)
);
$sut = new Flash($sessionStore);
$sut->put("test", "Test message");
}
public function testConsume_none():void {
$queue = self::createMock(SplQueue::class);
$queue->expects(self::once())
->method("dequeue")
->willThrowException(new RuntimeException("Can't shift from an empty datastructure"));
$sessionStore = self::createMock(SessionStoreInterface::class);
$sessionStore->expects(self::once())
->method("get")
->with("queue.test")
->willReturn($queue);
$sut = new Flash($sessionStore);
$flashMessage = $sut->consume("test");
self::assertNull($flashMessage);
}
public function testConsume():void {
$fm1 = new FlashMessage("test", "First");
$fm2 = new FlashMessage("test", "Second");
$queue = self::createMock(SplQueue::class);
$queue->expects(self::exactly(3))
->method("dequeue")
->willReturnOnConsecutiveCalls($fm1, $fm2);
$sessionStore = self::createMock(SessionStoreInterface::class);
$sessionStore->expects(self::exactly(3))
->method("get")
->with("queue.test")
->willReturn($queue);
$sessionStore->expects(self::once())
->method("remove")
->with("queue.test");
$sut = new Flash($sessionStore);
$flashMessage = $sut->consume("test");
self::assertInstanceOf(FlashMessage::class, $flashMessage);
self::assertSame("First", $flashMessage->message);
$flashMessage = $sut->consume("test");
self::assertInstanceOf(FlashMessage::class, $flashMessage);
self::assertSame("Second", $flashMessage->message);
$flashMessage = $sut->consume("test");
self::assertNull($flashMessage);
}
}