1 58 package org.krysalis.barcode.impl; 59 60 import org.krysalis.barcode.ChecksumMode; 61 62 import junit.framework.TestCase; 63 64 69 public class EAN13Test extends TestCase { 70 71 public EAN13Test(String name) { 72 super(name); 73 } 74 75 public void testIllegalArguments() throws Exception { 76 try { 77 EAN13 impl = new EAN13(); 78 impl.generateBarcode(null, null); 79 fail("Expected an NPE"); 80 } catch (NullPointerException npe) { 81 assertNotNull("Error message is empty", npe.getMessage()); 82 } 83 84 try { 86 EAN13LogicImpl logic = new EAN13LogicImpl(ChecksumMode.CP_AUTO); 87 logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), "123èöö2"); 88 fail("Expected an exception complaining about illegal characters"); 89 } catch (IllegalArgumentException iae) { 90 } 92 93 try { 95 EAN13LogicImpl logic = new EAN13LogicImpl(ChecksumMode.CP_AUTO); 96 logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), "123"); 97 fail("Expected an exception complaining about invalid message length"); 98 } catch (IllegalArgumentException iae) { 99 } 101 102 try { 104 EAN13LogicImpl logic = new EAN13LogicImpl(ChecksumMode.CP_AUTO); 105 logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), "123456789012344567890"); 106 fail("Expected an exception complaining about invalid message length"); 107 } catch (IllegalArgumentException iae) { 108 } 110 } 111 112 public void testLogic() throws Exception { 113 StringBuffer sb = new StringBuffer (); 114 EAN13LogicImpl logic; 115 String expected; 116 117 logic = new EAN13LogicImpl(ChecksumMode.CP_AUTO); 118 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "200123456789"); 119 expected = "<BC>" 120 + "<SBG:upc-ean-guard:null>B1W1B1</SBG>" 121 + "<SBG:upc-ean-group:2:001234>" 122 + "<SBG:msg-char:0>W3B2W1B1</SBG>" 123 + "<SBG:msg-char:0>W3B2W1B1</SBG>" 124 + "<SBG:msg-char:1>W1B2W2B2</SBG>" 125 + "<SBG:msg-char:2>W2B2W1B2</SBG>" 126 + "<SBG:msg-char:3>W1B4W1B1</SBG>" 127 + "<SBG:msg-char:4>W2B3W1B1</SBG>" 128 + "</SBG>" 129 + "<SBG:upc-ean-guard:null>W1B1W1B1W1</SBG>" 130 + "<SBG:upc-ean-group:567893>" 131 + "<SBG:msg-char:5>B1W2B3W1</SBG>" 132 + "<SBG:msg-char:6>B1W1B1W4</SBG>" 133 + "<SBG:msg-char:7>B1W3B1W2</SBG>" 134 + "<SBG:msg-char:8>B1W2B1W3</SBG>" 135 + "<SBG:msg-char:9>B3W1B1W2</SBG>" 136 + "<SBG:upc-ean-check:3>" 137 + "<SBG:msg-char:3>B1W4B1W1</SBG>" 138 + "</SBG>" 139 + "</SBG>" 140 + "<SBG:upc-ean-guard:null>B1W1B1</SBG>" 141 + "</BC>"; 142 assertEquals(expected, sb.toString()); 145 146 sb.setLength(0); 148 logic = new EAN13LogicImpl(ChecksumMode.CP_CHECK); 149 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "2001234567893"); 150 assertEquals(expected, sb.toString()); 153 154 } 155 156 } | Popular Tags |