1
1
<?php
2
2
3
3
use PHPUnit \Framework \TestCase ;
4
+ use Picqer \Barcode \Exceptions \BarcodeException ;
5
+ use Picqer \Barcode \Exceptions \InvalidCheckDigitException ;
4
6
use Picqer \Barcode \Types \TypeEan13 ;
5
7
use Picqer \Barcode \Types \TypeInterface ;
6
8
use Picqer \Barcode \Types \TypeITF14 ;
7
9
8
10
class ChecksumBarcodeTest extends TestCase
9
11
{
10
- public static $ supportedBarcodes = [
12
+ private const VALID_BARCODES = [
11
13
['type ' => TypeEan13::class, 'barcodes ' => [
12
14
'081231723897 ' => '0812317238973 ' ,
13
15
'004900000463 ' => '0049000004632 ' ,
@@ -17,14 +19,36 @@ class ChecksumBarcodeTest extends TestCase
17
19
'0540014128876 ' => '05400141288766 ' ,
18
20
]],
19
21
];
22
+ private const INVALID_BARCODES = [
23
+ ['type ' => TypeEan13::class, 'barcodes ' => ['0812317238972 ' , '0049000004633 ' ]],
24
+ ['type ' => TypeITF14::class, 'barcodes ' => ['00012345600016 ' , '05400141288762 ' ]],
25
+ ];
20
26
21
- public function testAllSupportedBarcodeTypes ()
27
+ public function testAllValidBarcodeTypes ()
22
28
{
23
- foreach ($ this :: $ supportedBarcodes as $ barcodeTestSet ) {
29
+ foreach (self :: VALID_BARCODES as $ barcodeTestSet ) {
24
30
$ barcodeType = $ this ->getBarcodeType ($ barcodeTestSet ['type ' ]);
25
31
26
- foreach ($ barcodeTestSet ['barcodes ' ] as $ testBarcode => $ expectedBarcode ) {
27
- $ this ->assertEquals ($ expectedBarcode , $ barcodeType ->getBarcodeData ($ testBarcode )->getBarcode ());
32
+ foreach ($ barcodeTestSet ['barcodes ' ] as $ testBarcode => $ validBarcode ) {
33
+ $ this ->assertEquals ($ validBarcode , $ barcodeType ->getBarcodeData ($ testBarcode )->getBarcode ());
34
+ }
35
+ }
36
+ }
37
+
38
+ public function testAllInvalidBarcodeTypes ()
39
+ {
40
+ foreach (self ::INVALID_BARCODES as $ barcodeTestSet ) {
41
+ $ barcodeType = $ this ->getBarcodeType ($ barcodeTestSet ['type ' ]);
42
+
43
+ foreach ($ barcodeTestSet ['barcodes ' ] as $ invalidBarcode ) {
44
+ try {
45
+ $ barcodeType ->getBarcodeData ($ invalidBarcode )->getBarcode ();
46
+ } catch (BarcodeException $ exception ) {
47
+ $ this ->assertInstanceOf (InvalidCheckDigitException::class, $ exception );
48
+ continue ;
49
+ }
50
+
51
+ $ this ->assertTrue (false , sprintf ('Exception was not thrown for barcode "%s". ' , $ invalidBarcode ));
28
52
}
29
53
}
30
54
}
0 commit comments