-
Notifications
You must be signed in to change notification settings - Fork 8
/
MessageTest.php
69 lines (61 loc) · 2.06 KB
/
MessageTest.php
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
/*
* This file is part of Chevere.
*
* (c) Rodolfo Berrios <rodolfo@chevere.org>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Chevere\Components\Message\Tests;
use Chevere\Components\Instances\BootstrapInstance;
use Chevere\Components\Message\Message;
use PHPUnit\Framework\TestCase;
final class MessageTest extends TestCase
{
public function testConstruct(): void
{
$var = 'message';
$message = new Message($var);
$this->assertSame($var, $message->toString());
}
public function testTranslate(): void
{
$var = 'lorem %translate%';
$args = ['%translate%', '1'];
$message = (new Message($var))->strtr(...$args);
$varTr = strtr($var, [$args[0] => $args[1]]);
$this->assertSame($varTr, $message->toString());
}
public function testWithDeclaredTags(): void
{
$var = 'lorem %bold% %message%';
$tags = [
'strong' => ['%bold%', 'Bold,Emphasis'],
'code' => ['%message%', '100']
];
$message = new Message($var);
$tr = [];
foreach ($tags as $tag => $value) {
$message = $message->$tag(...$value);
$tr[$value[0]] = "<$tag>" . $value[1] . "</$tag>";
}
$bootstrap = BootstrapInstance::get();
new BootstrapInstance($bootstrap->withCli(false));
$this->assertSame(strtr($var, $tr), $message->toString());
new BootstrapInstance($bootstrap);
}
public function testWithCli(): void
{
$bootstrap = BootstrapInstance::get();
$search = '%message%';
$replace = 'word';
$string = "A $search for CLI awareness";
$plain = str_replace($search, $replace, $string);
$message = (new Message($string))->code($search, $replace);
new BootstrapInstance($bootstrap->withCli(true));
$this->assertTrue(strlen($plain) < strlen($message->toString()));
new BootstrapInstance($bootstrap);
}
}