PluginProbe
Packeta / trunk
Packeta vtrunk
2.3.2 2.3.1 trunk 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.3.0 1.3.1 1.3.2 1.4 1.4.1 1.4.2 1.4.3 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 All 56 releases
packeta / tests / Module / MessageManagerTest.php

MessageManagerTest.php in Packeta trunk, at tests/Module/MessageManagerTest.php

81 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare( strict_types=1 );
4
5 namespace Tests\Module;
6
7 use Packetery\Latte\Engine;
8 use Packetery\Module\Framework\WpAdapter;
9 use Packetery\Module\Message;
10 use Packetery\Module\MessageManager;
11 use PHPUnit\Framework\TestCase;
12
13 class MessageManagerTest extends TestCase {
14 public function testFlashing(): void {
15 $wpAdapter = $this->createMock( WpAdapter::class );
16 $wpAdapter
17 ->method( 'getTransient' )
18 ->willReturn( false );
19
20 $messageManager = new MessageManager(
21 $this->createLatteEngineMock(),
22 $wpAdapter
23 );
24
25 $message = Message::create()
26 ->setContext( 'main' )
27 ->setType( MessageManager::TYPE_SUCCESS )
28 ->setText( 'Success message' )
29 ->setEscape( false )
30 ->setRenderer( MessageManager::RENDERER_WORDPRESS );
31 $messageManager->flashMessageObject( $message );
32
33 $result = $messageManager->renderToString( MessageManager::RENDERER_PACKETERY, 'main' );
34 $this->assertSame( '', $result );
35 $result = $messageManager->renderToString( MessageManager::RENDERER_WORDPRESS, 'other' );
36 $this->assertSame( '', $result );
37 $result = $messageManager->renderToString( MessageManager::RENDERER_WORDPRESS, 'main' );
38 $this->assertNotSame( '', $result );
39 $this->assertStringContainsString( $this->latteEngineStringRenderer( $message->toArray() ), $result );
40
41 $result = $messageManager->renderToString( MessageManager::RENDERER_WORDPRESS, 'main' );
42 $this->assertSame( '', $result );
43
44 $message = 'Some message 123';
45 $messageManager->flash_message( $message );
46 $result = $messageManager->renderToString( MessageManager::RENDERER_WORDPRESS, '' );
47 $this->assertStringContainsString( $message, $result );
48 }
49
50 public function testRender(): void {
51 $messageManager = new MessageManager(
52 $this->createLatteEngineMock(),
53 $this->createMock( WpAdapter::class )
54 );
55
56 $expectedMessage = 'Some message 123';
57 $messageManager->flash_message( $expectedMessage );
58
59 $this->expectOutputRegex( '~' . preg_quote( $expectedMessage, '~' ) . '~' );
60 $messageManager->render( MessageManager::RENDERER_WORDPRESS, '' );
61 }
62
63 private function createLatteEngineMock(): Engine {
64 $latteEngine = $this->createMock( Engine::class );
65 $latteEngine
66 ->method( 'renderToString' )
67 ->willReturnCallback(
68 function ( string $name, array $params ): string {
69 return $this->latteEngineStringRenderer( $params );
70 }
71 );
72
73 return $latteEngine;
74 }
75
76 private function latteEngineStringRenderer( array $params ): string {
77 // phpcs:ignore WordPress.WP.AlternativeFunctions.json_encode_json_encode
78 return json_encode( $params );
79 }
80 }
81