Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
41 / 41
n/a
0 / 0
CRAP
n/a
0 / 0
1<?php
2
3// ╔════════════════════════════════════════════════════════════╗
4// ║ MIT Licence (#Expat) - https://opensource.org/licenses/MIT ║
5// ║ Copyright 2026 Frederic Poeydomenge <dyno@phexium.com>     ║
6// ╚════════════════════════════════════════════════════════════╝
7
8declare(strict_types=1);
9
10use Phexium\Plugin\Session\Adapter\OdanFlash;
11use Tests\Phexium\Fake\Plugin\Session\OdanFlash as FakeOdanFlash;
12
13beforeEach(function (): void {
14    $this->odanFlash = new FakeOdanFlash();
15    $this->flashAdapter = new OdanFlash($this->odanFlash);
16});
17
18test('add() delegates to Odan FlashInterface', function (): void {
19    $this->flashAdapter->add('success', 'Operation successful');
20
21    expect($this->odanFlash->wasMethodCalled('add', ['success', 'Operation successful']))->toBeTrue();
22});
23
24test('get() retrieves messages from Odan FlashInterface', function (): void {
25    $expectedMessages = ['Message 1', 'Message 2'];
26
27    $this->odanFlash->setMessages('error', $expectedMessages);
28
29    $result = $this->flashAdapter->get('error');
30
31    expect($result)->toBe($expectedMessages);
32    expect($this->odanFlash->wasMethodCalled('get', ['error']))->toBeTrue();
33});
34
35test('all() retrieves all messages from Odan FlashInterface', function (): void {
36    $expectedMessages = [
37        'success' => ['Success message'],
38        'error' => ['Error message 1', 'Error message 2'],
39    ];
40
41    $this->odanFlash->setMessages('success', ['Success message']);
42    $this->odanFlash->setMessages('error', ['Error message 1', 'Error message 2']);
43
44    $result = $this->flashAdapter->all();
45
46    expect($result)->toBe($expectedMessages);
47    expect($this->odanFlash->wasMethodCalled('all'))->toBeTrue();
48});
49
50test('has() checks if level exists in Odan FlashInterface', function (): void {
51    $this->odanFlash->setMessages('warning', ['A warning message']);
52
53    $result = $this->flashAdapter->has('warning');
54
55    expect($result)->toBeTrue();
56    expect($this->odanFlash->wasMethodCalled('has', ['warning']))->toBeTrue();
57});
58
59test('has() returns false when level does not exist', function (): void {
60    $result = $this->flashAdapter->has('info');
61
62    expect($result)->toBeFalse();
63    expect($this->odanFlash->wasMethodCalled('has', ['info']))->toBeTrue();
64});
65
66test('clear() clears all messages from Odan FlashInterface', function (): void {
67    $this->flashAdapter->clear();
68
69    expect($this->odanFlash->wasMethodCalled('clear'))->toBeTrue();
70});