From ffa3f431d6a79db02c4cdbb6c0af8158df197fc1 Mon Sep 17 00:00:00 2001 From: "J. King" Date: Fri, 16 Oct 2020 20:35:27 -0400 Subject: [PATCH] Coverage fixes --- lib/Encoding/Encoder.php | 4 ++-- lib/Encoding/ISO2022JP.php | 2 +- tests/cases/TestEncoding.php | 22 +++++++++++++++++++--- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/Encoding/Encoder.php b/lib/Encoding/Encoder.php index 75b3d4f..09d0927 100644 --- a/lib/Encoding/Encoder.php +++ b/lib/Encoding/Encoder.php @@ -20,7 +20,7 @@ class Encoder { public function __construct(string $label, bool $fatal = true) { $l = Matcher::matchLabel($label); if (!$l || !$l['encoder']) { - throw new EncoderException("Label '$label' does not have an encoder", Encoder::E_UNAVAILABLE_ENCODER); + throw new EncoderException("Label '$label' does not have an encoder", Encoding::E_UNAVAILABLE_ENCODER); } else { $this->name = $l['name']; $this->fatal = $fatal; @@ -158,7 +158,7 @@ class Encoder { return $this->err($codePoint); } } - } + } // @codeCoverageIgnore protected function modeSet(int $mode, string $bytes): string { $head = ["\x1B\x28\x42", "\x1B\x28\x4A", "\x1B\x24\x42"][$mode]; diff --git a/lib/Encoding/ISO2022JP.php b/lib/Encoding/ISO2022JP.php index dba68c7..be2a05b 100644 --- a/lib/Encoding/ISO2022JP.php +++ b/lib/Encoding/ISO2022JP.php @@ -134,7 +134,7 @@ class ISO2022JP extends AbstractEncoding implements Encoding { } } } - } + } // @codeCoverageIgnore protected function modeSet(int $mode): int { $this->modeStack[] = [$this->modeMark, $this->mode]; diff --git a/tests/cases/TestEncoding.php b/tests/cases/TestEncoding.php index 16f09b7..f939cca 100644 --- a/tests/cases/TestEncoding.php +++ b/tests/cases/TestEncoding.php @@ -7,6 +7,7 @@ declare(strict_types=1); namespace MensBeam\Intl\TestCase; use MensBeam\Intl\Encoding; +use MensBeam\Intl\Encoding\Encoder; class TestEncoding extends \PHPUnit\Framework\TestCase { /** @dataProvider provideLabelData */ @@ -31,6 +32,23 @@ class TestEncoding extends \PHPUnit\Framework\TestCase { $this->assertNull(Encoding::createDecoder("Not a label", "")); } + /** @dataProvider provideLabelData */ + public function testCreateAnEncoderFromALabel(string $label, array $data) { + if ($data['encoder']) { + $this->assertInstanceOf(Encoder::class, Encoding::createEncoder($label)); + $this->assertInstanceOf(Encoder::class, Encoding::createEncoder(strtoupper($label))); + $this->assertInstanceOf(Encoder::class, Encoding::createEncoder(" $label\n\n\r\t")); + } else { + $this->assertNull(Encoding::createEncoder($label)); + $this->assertNull(Encoding::createEncoder(strtoupper($label))); + $this->assertNull(Encoding::createEncoder(" $label\n\n\r\t")); + } + } + + public function testFailToCreateAnEncoderFromALabel() { + $this->assertNull(Encoding::createEncoder("Not a label")); + } + public function provideLabelData() { $ns = "MensBeam\\Intl\\Encoding\\"; $labels = []; @@ -47,12 +65,10 @@ class TestEncoding extends \PHPUnit\Framework\TestCase { } } } - $out = []; foreach ($labels as $label => $name) { $class = $names[$name]; $encoder = !in_array($name, ["UTF-16LE", "UTF-16BE", "replacement"]); - $out[] = [(string) $label, ['label' => (string) $label, 'name' => $name, 'encoder' => $encoder, 'class' => $class]]; + yield [(string) $label, ['label' => (string) $label, 'name' => $name, 'encoder' => $encoder, 'class' => $class]]; } - return $out; } }