<?php
/*
* This file is part of Chevere.
*
* (c) Rodolfo Berrios <[email protected]>
*
* 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\Tests\Processors;
use Chevere\Tests\Traits\VarDumperTrait;
use Chevere\VarDump\Processors\StringProcessor;
use InvalidArgumentException;
use PHPUnit\Framework\TestCase;
final class StringProcessorTest extends TestCase
{
use VarDumperTrait;
public function dataProviderConstruct(): array
{
return [
[''],
['string'],
['cádena'],
['another string'],
['100'],
['false'],
['?'],
['?'],
[chr(128), 'b"?"'],
[hex2bin('ae0f3d'), 'b"®\x0F="'],
];
}
/**
* @dataProvider dataProviderConstruct
*/
public function testConstruct(string $var, string $expected = ''): void
{
if ($expected === '') {
$expected = $var;
}
$varDumper = $this->getVarDumper($var);
$this->assertProcessor(StringProcessor::class, $varDumper);
$processor = new StringProcessor($varDumper);
$this->assertSame('CP1252', $processor->charset());
$expectedInfo = 'length=' . mb_strlen($var);
$this->assertSame($expectedInfo, $processor->info(), "info:{$var}");
$this->assertSame(
"string {$expected} ({$expectedInfo})",
$varDumper->writer()->__toString(),
"string:{$expected}"
);
}
public function testDefaultCharset(): void
{
$varDumper = $this->getVarDumper('string');
$defaultCharset = ini_get('default_charset');
ini_set('default_charset', '8bit');
$processor = new StringProcessor($varDumper);
$this->assertSame('8BIT', $processor->charset());
ini_set('default_charset', $defaultCharset);
}
public function testTypeError(): void
{
$varDumper = $this->getVarDumper(123);
$this->expectException(InvalidArgumentException::class);
new StringProcessor($varDumper);
}
}
|