Skip to content

Commit f3f875f

Browse files
committed
Add failint test for invalid ITF14 checksum
1 parent acaf80f commit f3f875f

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

tests/ChecksumBarcodeTest.php

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
<?php
22

33
use PHPUnit\Framework\TestCase;
4+
use Picqer\Barcode\Exceptions\InvalidCheckDigitException;
45
use Picqer\Barcode\Types\TypeEan13;
56
use Picqer\Barcode\Types\TypeInterface;
67
use Picqer\Barcode\Types\TypeITF14;
78

89
class ChecksumBarcodeTest extends TestCase
910
{
10-
public static $supportedBarcodes = [
11+
private const VALID_BARCODES = [
1112
['type' => TypeEan13::class, 'barcodes' => [
1213
'081231723897' => '0812317238973',
1314
'004900000463' => '0049000004632',
@@ -17,14 +18,30 @@ class ChecksumBarcodeTest extends TestCase
1718
'0540014128876' => '05400141288766',
1819
]],
1920
];
21+
private const INVALID_BARCODES = [
22+
['type' => TypeEan13::class, 'barcodes' => ['0812317238972', '0049000004633']],
23+
['type' => TypeITF14::class, 'barcodes' => ['00012345600016', '05400141288762']],
24+
];
25+
26+
public function testAllValidBarcodeTypes()
27+
{
28+
foreach (self::VALID_BARCODES as $barcodeTestSet) {
29+
$barcodeType = $this->getBarcodeType($barcodeTestSet['type']);
30+
31+
foreach ($barcodeTestSet['barcodes'] as $testBarcode => $validBarcode) {
32+
$this->assertEquals($validBarcode, $barcodeType->getBarcodeData($testBarcode)->getBarcode());
33+
}
34+
}
35+
}
2036

21-
public function testAllSupportedBarcodeTypes()
37+
public function testAllInvalidBarcodeTypes()
2238
{
23-
foreach ($this::$supportedBarcodes as $barcodeTestSet) {
39+
foreach (self::INVALID_BARCODES as $barcodeTestSet) {
2440
$barcodeType = $this->getBarcodeType($barcodeTestSet['type']);
2541

26-
foreach ($barcodeTestSet['barcodes'] as $testBarcode => $expectedBarcode) {
27-
$this->assertEquals($expectedBarcode, $barcodeType->getBarcodeData($testBarcode)->getBarcode());
42+
foreach ($barcodeTestSet['barcodes'] as $invalidBarcode) {
43+
$this->expectException(InvalidCheckDigitException::class);
44+
$barcodeType->getBarcodeData($invalidBarcode)->getBarcode();
2845
}
2946
}
3047
}

0 commit comments

Comments
 (0)