EccLevelTest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Class EccLevelTest
  4. *
  5. * @created 25.07.2022
  6. * @author smiley <smiley@chillerlan.net>
  7. * @copyright 2022 smiley
  8. * @license MIT
  9. */
  10. declare(strict_types=1);
  11. namespace chillerlan\QRCodeTest\Common;
  12. use chillerlan\QRCode\QRCodeException;
  13. use chillerlan\QRCode\Common\{EccLevel, MaskPattern};
  14. use PHPUnit\Framework\Attributes\Test;
  15. use PHPUnit\Framework\TestCase;
  16. /**
  17. * EccLevel coverage test
  18. */
  19. final class EccLevelTest extends TestCase{
  20. #[Test]
  21. public function constructInvalidEccException():void{
  22. $this->expectException(QRCodeException::class);
  23. $this->expectExceptionMessage('invalid ECC level');
  24. new EccLevel(69);
  25. }
  26. #[Test]
  27. public function eccToString():void{
  28. $ecc = new EccLevel(EccLevel::L);
  29. $this::assertSame('L', (string)$ecc);
  30. }
  31. #[Test]
  32. public function getLevel():void{
  33. $ecc = new EccLevel(EccLevel::L);
  34. $this::assertSame(EccLevel::L, $ecc->getLevel());
  35. }
  36. #[Test]
  37. public function getOrdinal():void{
  38. $ecc = new EccLevel(EccLevel::L);
  39. $this::assertSame(0, $ecc->getOrdinal());
  40. }
  41. #[Test]
  42. public function getformatPattern():void{
  43. $ecc = new EccLevel(EccLevel::Q);
  44. $this::assertSame(0b010010010110100, $ecc->getformatPattern(new MaskPattern(4)));
  45. }
  46. #[Test]
  47. public function getMaxBits():void{
  48. $ecc = new EccLevel(EccLevel::Q);
  49. $this::assertSame(4096, $ecc->getMaxBits()[21]);
  50. }
  51. }