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 EAN8Test extends TestCase { 70 71 public EAN8Test(String name) { 72 super(name); 73 } 74 75 public void testIllegalArguments() throws Exception { 76 try { 77 EAN8 impl = new EAN8(); 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 EAN8LogicImpl logic = new EAN8LogicImpl(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 EAN8LogicImpl logic = new EAN8LogicImpl(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 EAN8LogicImpl logic = new EAN8LogicImpl(ChecksumMode.CP_AUTO); 105 logic.generateBarcodeLogic( 106 new NullClassicBarcodeLogicHandler(), 107 "123456789012344567890"); 108 fail("Expected an exception complaining about invalid message length"); 109 } catch (IllegalArgumentException iae) { 110 } 112 } 113 114 public void testLogic() throws Exception { 115 StringBuffer sb = new StringBuffer (); 116 EAN8LogicImpl logic; 117 String expected; 118 119 logic = new EAN8LogicImpl(ChecksumMode.CP_AUTO); 120 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "2213933"); 121 expected = "<BC>" 122 + "<SBG:upc-ean-guard:null>B1W1B1</SBG>" 123 + "<SBG:upc-ean-group:2213>" 124 + "<SBG:msg-char:2>W2B1W2B2</SBG>" 125 + "<SBG:msg-char:2>W2B1W2B2</SBG>" 126 + "<SBG:msg-char:1>W2B2W2B1</SBG>" 127 + "<SBG:msg-char:3>W1B4W1B1</SBG>" 128 + "</SBG>" 129 + "<SBG:upc-ean-guard:null>W1B1W1B1W1</SBG>" 130 + "<SBG:upc-ean-group:9337>" 131 + "<SBG:msg-char:9>B3W1B1W2</SBG>" 132 + "<SBG:msg-char:3>B1W4B1W1</SBG>" 133 + "<SBG:msg-char:3>B1W4B1W1</SBG>" 134 + "<SBG:upc-ean-check:7>" 135 + "<SBG:msg-char:7>B1W3B1W2</SBG>" 136 + "</SBG>" 137 + "</SBG>" 138 + "<SBG:upc-ean-guard:null>B1W1B1</SBG>" 139 + "</BC>"; 140 assertEquals(expected, sb.toString()); 143 144 sb.setLength(0); 146 logic = new EAN8LogicImpl(ChecksumMode.CP_CHECK); 147 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "22139337"); 148 assertEquals(expected, sb.toString()); 151 152 } 153 154 } | Popular Tags |