[Barcode4j-cvs]
barcode4j/src/test/java/org/krysalis/barcode4j/impl/code39
Code39Test.java, 1.1, 1.2
From: Jeremias M. <jm...@us...> - 2008-05-14 09:28:23
|
Update of /cvsroot/barcode4j/barcode4j/src/test/java/org/krysalis/barcode4j/impl/code39 In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv19169/src/test/java/org/krysalis/barcode4j/impl/code39 Modified Files: Code39Test.java Log Message: Documentation for Code 39 extended character set. Additional tests for the various Code 39 options. Code39LogicImpl now ignores start/stop chars if given in the message if in standard mode. Index: Code39Test.java =================================================================== RCS file: /cvsroot/barcode4j/barcode4j/src/test/java/org/krysalis/barcode4j/impl/code39/Code39Test.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Code39Test.java 14 May 2008 08:05:08 -0000 1.1 --- Code39Test.java 14 May 2008 09:28:29 -0000 1.2 *************** *** 16,26 **** package org.krysalis.barcode4j.impl.code39; import org.krysalis.barcode4j.ChecksumMode; import org.krysalis.barcode4j.impl.MockClassicBarcodeLogicHandler; import org.krysalis.barcode4j.impl.NullClassicBarcodeLogicHandler; - import org.krysalis.barcode4j.impl.code39.Code39; - import org.krysalis.barcode4j.impl.code39.Code39LogicImpl; - - import junit.framework.TestCase; /** --- 16,24 ---- package org.krysalis.barcode4j.impl.code39; + import junit.framework.TestCase; + import org.krysalis.barcode4j.ChecksumMode; import org.krysalis.barcode4j.impl.MockClassicBarcodeLogicHandler; import org.krysalis.barcode4j.impl.NullClassicBarcodeLogicHandler; /** *************** *** 53,60 **** } ! public void testLogic() throws Exception { ! StringBuffer sb = new StringBuffer(); Code39LogicImpl logic; - String expected; try { --- 51,56 ---- } ! public void testIllegalChars() throws Exception { Code39LogicImpl logic; try { *************** *** 66,72 **** } logic = new Code39LogicImpl(ChecksumMode.CP_AUTO, false, false, false); ! logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "123ABC"); ! expected = "<BC>" + "<SBG:start-char:*>" + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" --- 62,153 ---- } + //In standard charset, the * is legal in the message if it is used as start/stop chars + try { + StringBuffer sb = new StringBuffer(); + logic = new Code39LogicImpl(ChecksumMode.CP_AUTO, false, false, false); + logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb, true), "*1*"); + String expected = "<BC:1>" + + "<SBG:start-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "W-1" + + "<SBG:msg-char:1>B2W1B1W2B1W1B1W1B2</SBG>" + + "W-1" + + "<SBG:stop-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "</BC>"; + //System.out.println(expected); + //System.out.println(sb.toString()); + assertEquals(expected, sb.toString()); + } catch (IllegalArgumentException iae) { + fail("Must not complain about '*' if used properly in stadard mode!"); + } + + //In standard charset, the * is illegal inside the message + try { + logic = new Code39LogicImpl(ChecksumMode.CP_AUTO, false, false, false); + logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), "*1"); + fail("Expected an exception complaining about illegal characters"); + } catch (IllegalArgumentException iae) { + //must fail + } + try { + logic = new Code39LogicImpl(ChecksumMode.CP_AUTO, false, false, false); + logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), "1*"); + fail("Expected an exception complaining about illegal characters"); + } catch (IllegalArgumentException iae) { + //must fail + } + + //In standard charset, the * is illegal inside the message + try { + logic = new Code39LogicImpl(ChecksumMode.CP_AUTO, false, false, false); + logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), "*1*2*"); + fail("Expected an exception complaining about illegal characters"); + } catch (IllegalArgumentException iae) { + //must fail + } + + //...but with extended charset enabled, this is valid + try { + StringBuffer sb = new StringBuffer(); + logic = new Code39LogicImpl(ChecksumMode.CP_AUTO, false, false, true); + logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb, true), "*1*"); + String expected = "<BC:*1*>" + + "<SBG:start-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "W-1" + + "<SBG:msg-char:/>B1W2B1W2B1W1B1W2B1</SBG>" + + "W-1" + + "<SBG:msg-char:J>B1W1B1W1B2W2B2W1B1</SBG>" + + "W-1" + + "<SBG:msg-char:1>B2W1B1W2B1W1B1W1B2</SBG>" + + "W-1" + + "<SBG:msg-char:/>B1W2B1W2B1W1B1W2B1</SBG>" + + "W-1" + + "<SBG:msg-char:J>B1W1B1W1B2W2B2W1B1</SBG>" + + "W-1" + + "<SBG:stop-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "</BC>"; + //System.out.println(expected); + //System.out.println(sb.toString()); + assertEquals(expected, sb.toString()); + } catch (IllegalArgumentException iae) { + fail("Must not complain about '*' with extended charset enabled!"); + } + } + + public void testLogic() throws Exception { + StringBuffer sb = new StringBuffer(); + Code39LogicImpl logic; + String expected; + logic = new Code39LogicImpl(ChecksumMode.CP_AUTO, false, false, false); ! logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb, true), "123ABC"); ! expected = "<BC:123ABC>" + "<SBG:start-char:*>" + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" *************** *** 154,157 **** --- 235,294 ---- } + public void testDisplayStartStop() throws Exception { + StringBuffer sb = new StringBuffer(); + Code39LogicImpl logic; + String expected; + + logic = new Code39LogicImpl(ChecksumMode.CP_IGNORE, true, false, false); + logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb, true), "123"); + expected = "<BC:*123*>" + + "<SBG:start-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "W-1" + + "<SBG:msg-char:1>B2W1B1W2B1W1B1W1B2</SBG>" + + "W-1" + + "<SBG:msg-char:2>B1W1B2W2B1W1B1W1B2</SBG>" + + "W-1" + + "<SBG:msg-char:3>B2W1B2W2B1W1B1W1B1</SBG>" + + "W-1" + + "<SBG:stop-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "</BC>"; + //System.out.println(expected); + //System.out.println(sb.toString()); + assertEquals(expected, sb.toString()); + } + + public void testDisplayChecksum() throws Exception { + StringBuffer sb = new StringBuffer(); + Code39LogicImpl logic; + String expected; + + logic = new Code39LogicImpl(ChecksumMode.CP_ADD, false, true, false); + logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb, true), "123"); + expected = "<BC:1236>" + + "<SBG:start-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "W-1" + + "<SBG:msg-char:1>B2W1B1W2B1W1B1W1B2</SBG>" + + "W-1" + + "<SBG:msg-char:2>B1W1B2W2B1W1B1W1B2</SBG>" + + "W-1" + + "<SBG:msg-char:3>B2W1B2W2B1W1B1W1B1</SBG>" + + "W-1" + + "<SBG:msg-char:6>B1W1B2W2B2W1B1W1B1</SBG>" + + "W-1" + + "<SBG:stop-char:*>" + + "<SBG:msg-char:*>B1W2B1W1B2W1B2W1B1</SBG>" + + "</SBG>" + + "</BC>"; + //System.out.println(expected); + //System.out.println(sb.toString()); + assertEquals(expected, sb.toString()); + } + public void testExtendedCharSet() throws Exception { Code39LogicImpl logic = new Code39LogicImpl(ChecksumMode.CP_IGNORE, false, false, true); |