* @copyright 2023 smiley * @license MIT */ namespace chillerlan\QRCodeTest\Common; use chillerlan\QRCode\QRCodeException; use chillerlan\QRCode\Common\ECICharset; use PHPUnit\Framework\TestCase; final class ECICharsetTest extends TestCase{ public static function invalidIdProvider():array{ return [[-1], [1000000]]; } /** * @dataProvider invalidIdProvider */ public function testInvalidDataException(int $id):void{ $this->expectException(QRCodeException::class); $this->expectExceptionMessage('invalid charset id:'); /** @phan-suppress-next-line PhanNoopNew */ new ECICharset($id); } public function encodingProvider():array{ $params = []; foreach(ECICharset::MB_ENCODINGS as $id => $name){ $params[] = [$id, $name]; } return $params; } /** * @dataProvider encodingProvider */ public function testGetName(int $id, string $name = null):void{ $eciCharset = new ECICharset($id); $this::assertSame($id, $eciCharset->getID()); $this::assertSame($name, $eciCharset->getName()); } }