diff --git a/tests/Data/DataTest.php b/tests/Data/DataTest.php index 8c45906ea..d2d470fe5 100644 --- a/tests/Data/DataTest.php +++ b/tests/Data/DataTest.php @@ -31,9 +31,11 @@ class DataTest extends \PHPUnit_Framework_TestCase{ public function bitProvider(){ return [ + [QRConst::MODE_NUMBER, Number::class, '123456789'], [QRConst::MODE_NUMBER, Number::class, '1234567890'], + [QRConst::MODE_NUMBER, Number::class, '12345678901'], [QRConst::MODE_ALPHANUM, AlphaNum::class, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 $%*+-./:'], - [QRConst::MODE_BYTE, Byte::class, '#'], + [QRConst::MODE_BYTE, Byte::class, '#\\'], [QRConst::MODE_KANJI, Kanji::class, '茗荷'], ]; } @@ -46,17 +48,58 @@ class DataTest extends \PHPUnit_Framework_TestCase{ * @dataProvider bitProvider */ public function testMode($mode, $class, $data){ - $module = new $class($data); - $this->assertEquals($mode, $module->mode); + $this->module = new $class($data); + $this->assertEquals($mode, $this->module->mode); } /** * @dataProvider bitProvider */ public function testWrite($mode, $class, $data){ - $module = new $class($data); - $module->write($this->bitBuffer); - // todo... + $this->bitBuffer->clear(); + $this->module = new $class($data); + $this->module->write($this->bitBuffer); } + /** + * @expectedException \chillerlan\QRCode\Data\QRCodeDataException + * @expectedExceptionMessage illegal char: 92 + */ + public function testAlphaNumCharException(){ + $this->bitBuffer->clear(); + $this->module = new AlphaNum('\\'); + $this->module->write($this->bitBuffer); + } + + /** + * @expectedException \chillerlan\QRCode\Data\QRCodeDataException + * @expectedExceptionMessage illegal char at 7 (50051) + */ + public function testKanjiCharExceptionA(){ + $this->bitBuffer->clear(); + $this->module = new Kanji('茗荷Ã'); + $this->module->write($this->bitBuffer); + } + + /** + * @expectedException \chillerlan\QRCode\Data\QRCodeDataException + * @expectedExceptionMessage illegal char at 7 + */ + public function testKanjiCharExceptionB(){ + $this->bitBuffer->clear(); + $this->module = new Kanji('茗荷\\'); + $this->module->write($this->bitBuffer); + } + + /** + * @expectedException \chillerlan\QRCode\Data\QRCodeDataException + * @expectedExceptionMessage illegal char: 92 + */ + public function testNumberCharException(){ + $this->bitBuffer->clear(); + $this->module = new Number('\\'); + $this->module->write($this->bitBuffer); + } + + }