/** * Particular validation for Upce barcode objects * (to suppress checksum character substitution) * @param string $value * @param array $options */ protected function _validateText($value, $options = array()) { $validator = new BarcodeValidator\Barcode(array('adapter' => 'upce', 'checksum' => false)); $value = $this->_addLeadingZeros($value, true); if (!$validator->isValid($value)) { $message = implode("\n", $validator->getMessages()); throw new Exception($message); } }
/** * Standard validation for most of barcode objects * @param string $value * @param array $options */ protected function _validateText($value, $options = array()) { $validatorName = isset($options['validator']) ? $options['validator'] : $this->getType(); $validator = new BarcodeValidator\Barcode(array('adapter' => $validatorName, 'checksum' => false)); $checksumCharacter = ''; $withChecksum = false; if ($this->_mandatoryChecksum) { $checksumCharacter = $this->_substituteChecksumCharacter; $withChecksum = true; } $value = $this->_addLeadingZeros($value, $withChecksum) . $checksumCharacter; if (!$validator->isValid($value)) { $message = implode("\n", $validator->getMessages()); throw new Exception($message); } }
public function testUPCE() { $barcode = new Barcode\Barcode('upce'); $this->assertTrue($barcode->isValid('02345673')); $this->assertFalse($barcode->isValid('02345672')); $this->assertFalse($barcode->isValid('123')); $this->assertTrue($barcode->isValid('123456')); $this->assertTrue($barcode->isValid('0234567')); }