/** * @test */ public function validationTest() { $dataArr = ['5901234123457' => [true, true], '9780735200449' => [true, true], '002210034567' => [false, true], '7123456789011' => [false, false], '412345678908' => [false, false], '8x60603226779' => [false, false], '8' => [true, false], '' => [false, false]]; foreach ($dataArr as $data => &$info) { try { $bc = new Ean13($data, $info[0]); $this->assertTrue($info[1]); $this->assertEquals($bc->getProductCode(), \substr($data, 7, 5)); $this->assertEquals($bc->withProductCode('56')->getProductCode(), '00056'); $this->assertEquals($bc->isUpcaCompatible(), $data[0] == '0'); if ($bc->isUpcaCompatible()) { $this->assertStringStartsWith(\substr($data, 1), $bc->toUpca()->getData()); } else { try { $bc->toUpca(); $this->assertTrue(false); } catch (\Zeus\Barcode\Exception $ex) { $this->assertTrue(true); } } } catch (\Exception $ex) { $this->assertFalse($info[1]); } } }