1
1
<?php
2
2
3
3
use PHPUnit \Framework \TestCase ;
4
+ use Picqer \Barcode \Exceptions \InvalidCheckDigitException ;
4
5
use Picqer \Barcode \Types \TypeEan13 ;
5
6
use Picqer \Barcode \Types \TypeInterface ;
6
7
use Picqer \Barcode \Types \TypeITF14 ;
7
8
8
9
class ChecksumBarcodeTest extends TestCase
9
10
{
10
- public static $ supportedBarcodes = [
11
+ private const VALID_BARCODES = [
11
12
['type ' => TypeEan13::class, 'barcodes ' => [
12
13
'081231723897 ' => '0812317238973 ' ,
13
14
'004900000463 ' => '0049000004632 ' ,
@@ -17,14 +18,30 @@ class ChecksumBarcodeTest extends TestCase
17
18
'0540014128876 ' => '05400141288766 ' ,
18
19
]],
19
20
];
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
+ }
20
36
21
- public function testAllSupportedBarcodeTypes ()
37
+ public function testAllInvalidBarcodeTypes ()
22
38
{
23
- foreach ($ this :: $ supportedBarcodes as $ barcodeTestSet ) {
39
+ foreach (self :: INVALID_BARCODES as $ barcodeTestSet ) {
24
40
$ barcodeType = $ this ->getBarcodeType ($ barcodeTestSet ['type ' ]);
25
41
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 ();
28
45
}
29
46
}
30
47
}
0 commit comments