VersionTest.php 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * Class VersionTest
  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, Version};
  14. use PHPUnit\Framework\Attributes\Test;
  15. use PHPUnit\Framework\TestCase;
  16. /**
  17. * Version coverage test
  18. */
  19. final class VersionTest extends TestCase{
  20. private Version $version;
  21. protected function setUp():void{
  22. $this->version = new Version(7);
  23. }
  24. #[Test]
  25. public function versionToString():void{
  26. $this::assertSame('7', (string)$this->version);
  27. }
  28. #[Test]
  29. public function getVersionNumber():void{
  30. $this::assertSame(7, $this->version->getVersionNumber());
  31. }
  32. #[Test]
  33. public function getDimension():void{
  34. $this::assertSame(45, $this->version->getDimension());
  35. }
  36. #[Test]
  37. public function getVersionPattern():void{
  38. $this::assertSame(0b000111110010010100, $this->version->getVersionPattern());
  39. // no pattern for version < 7
  40. $this::assertNull((new Version(6))->getVersionPattern());
  41. }
  42. #[Test]
  43. public function getAlignmentPattern():void{
  44. $this::assertSame([6, 22, 38], $this->version->getAlignmentPattern());
  45. }
  46. #[Test]
  47. public function getRSBlocks():void{
  48. $this::assertSame([18, [[2, 14], [4, 15]]], $this->version->getRSBlocks(new EccLevel(EccLevel::Q)));
  49. }
  50. #[Test]
  51. public function getTotalCodewords():void{
  52. $this::assertSame(196, $this->version->getTotalCodewords());
  53. }
  54. #[Test]
  55. public function constructInvalidVersion():void{
  56. $this->expectException(QRCodeException::class);
  57. $this->expectExceptionMessage('invalid version given');
  58. new Version(69);
  59. }
  60. }