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 UPCATest extends TestCase { 70 71 public UPCATest(String name) { 72 super(name); 73 } 74 75 public void testIllegalArguments() throws Exception { 76 try { 77 UPCA impl = new UPCA(); 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 UPCALogicImpl logic = new UPCALogicImpl(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 UPCALogicImpl logic = new UPCALogicImpl(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 UPCALogicImpl logic = new UPCALogicImpl(ChecksumMode.CP_AUTO); 105 logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), 106 "123456789012344567890"); 107 fail("Expected an exception complaining about invalid message length"); 108 } catch (IllegalArgumentException iae) { 109 } 111 } 112 113 public void testLogic() throws Exception { 114 StringBuffer sb = new StringBuffer (); 115 UPCALogicImpl logic; 116 String expected; 117 118 logic = new UPCALogicImpl(ChecksumMode.CP_AUTO); 119 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "00123456789"); 120 expected = "<BC>" 121 + "<SBG:upc-ean-guard:null>B1W1B1</SBG>" 122 + "<SBG:upc-ean-lead:0>" 123 + "<SBG:msg-char:0>W3B2W1B1</SBG>" 124 + "</SBG>" 125 + "<SBG:upc-ean-group:01234>" 126 + "<SBG:msg-char:0>W3B2W1B1</SBG>" 127 + "<SBG:msg-char:1>W2B2W2B1</SBG>" 128 + "<SBG:msg-char:2>W2B1W2B2</SBG>" 129 + "<SBG:msg-char:3>W1B4W1B1</SBG>" 130 + "<SBG:msg-char:4>W1B1W3B2</SBG>" 131 + "</SBG>" 132 + "<SBG:upc-ean-guard:null>W1B1W1B1W1</SBG>" 133 + "<SBG:upc-ean-group:56789>" 134 + "<SBG:msg-char:5>B1W2B3W1</SBG>" 135 + "<SBG:msg-char:6>B1W1B1W4</SBG>" 136 + "<SBG:msg-char:7>B1W3B1W2</SBG>" 137 + "<SBG:msg-char:8>B1W2B1W3</SBG>" 138 + "<SBG:msg-char:9>B3W1B1W2</SBG>" 139 + "</SBG>" 140 + "<SBG:upc-ean-check:5>" 141 + "<SBG:msg-char:5>B1W2B3W1</SBG>" 142 + "</SBG>" 143 + "<SBG:upc-ean-guard:null>B1W1B1</SBG>" 144 + "</BC>"; 145 assertEquals(expected, sb.toString()); 148 149 sb.setLength(0); 151 logic = new UPCALogicImpl(ChecksumMode.CP_CHECK); 152 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), 153 "001234567895"); 154 assertEquals(expected, sb.toString()); 157 158 } 159 160 } | Popular Tags |