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 POSTNETTest extends TestCase { 70 71 public POSTNETTest(String name) { 72 super(name); 73 } 74 75 public void testChecksum() throws Exception { 76 assertEquals('1', POSTNETLogicImpl.calcChecksum("75368")); 77 assertEquals('7', POSTNETLogicImpl.calcChecksum("110119000")); 78 assertEquals('7', POSTNETLogicImpl.calcChecksum("11011-9000")); 79 assertEquals('0', POSTNETLogicImpl.calcChecksum("400017265951")); 80 } 81 82 public void testIllegalArguments() throws Exception { 83 try { 84 POSTNET impl = new POSTNET(); 85 impl.generateBarcode(null, null); 86 fail("Expected an NPE"); 87 } catch (NullPointerException npe) { 88 assertNotNull("Error message is empty", npe.getMessage()); 89 } 90 } 91 92 public void testIgnoreChars() throws Exception { 93 assertEquals("75368", POSTNETLogicImpl.removeIgnoredCharacters("75368")); 94 assertEquals("110119000", POSTNETLogicImpl.removeIgnoredCharacters("11011-9000")); 95 } 96 97 public void testLogic() throws Exception { 98 StringBuffer sb = new StringBuffer (); 99 POSTNETLogicImpl logic; 100 String expected; 101 102 try { 103 logic = new POSTNETLogicImpl(ChecksumMode.CP_AUTO); 104 logic.generateBarcodeLogic(new NullClassicBarcodeLogicHandler(), "123èöö2"); 105 fail("Expected an exception complaining about illegal characters"); 106 } catch (IllegalArgumentException iae) { 107 } 109 110 logic = new POSTNETLogicImpl(ChecksumMode.CP_AUTO); 111 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "75368"); 112 expected = "<BC>" 113 + "B2W-1" 114 + "<SBG:msg-char:7>B2W-1B1W-1B1W-1B1W-1B2W-1</SBG>" 115 + "<SBG:msg-char:5>B1W-1B2W-1B1W-1B2W-1B1W-1</SBG>" 116 + "<SBG:msg-char:3>B1W-1B1W-1B2W-1B2W-1B1W-1</SBG>" 117 + "<SBG:msg-char:6>B1W-1B2W-1B2W-1B1W-1B1W-1</SBG>" 118 + "<SBG:msg-char:8>B2W-1B1W-1B1W-1B2W-1B1W-1</SBG>" 119 + "B2" 120 + "</BC>"; 121 assertEquals(expected, sb.toString()); 124 125 126 sb.setLength(0); 127 logic = new POSTNETLogicImpl(ChecksumMode.CP_ADD);; 128 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "75368"); 129 expected = "<BC>" 130 + "B2W-1" 131 + "<SBG:msg-char:7>B2W-1B1W-1B1W-1B1W-1B2W-1</SBG>" 132 + "<SBG:msg-char:5>B1W-1B2W-1B1W-1B2W-1B1W-1</SBG>" 133 + "<SBG:msg-char:3>B1W-1B1W-1B2W-1B2W-1B1W-1</SBG>" 134 + "<SBG:msg-char:6>B1W-1B2W-1B2W-1B1W-1B1W-1</SBG>" 135 + "<SBG:msg-char:8>B2W-1B1W-1B1W-1B2W-1B1W-1</SBG>" 136 + "<SBG:msg-char:1>B1W-1B1W-1B1W-1B2W-1B2W-1</SBG>" 137 + "B2" 138 + "</BC>"; 139 assertEquals(expected, sb.toString()); 142 143 144 sb.setLength(0); 145 logic = new POSTNETLogicImpl(ChecksumMode.CP_CHECK); 146 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "753681"); 147 expected = "<BC>" 148 + "B2W-1" 149 + "<SBG:msg-char:7>B2W-1B1W-1B1W-1B1W-1B2W-1</SBG>" 150 + "<SBG:msg-char:5>B1W-1B2W-1B1W-1B2W-1B1W-1</SBG>" 151 + "<SBG:msg-char:3>B1W-1B1W-1B2W-1B2W-1B1W-1</SBG>" 152 + "<SBG:msg-char:6>B1W-1B2W-1B2W-1B1W-1B1W-1</SBG>" 153 + "<SBG:msg-char:8>B2W-1B1W-1B1W-1B2W-1B1W-1</SBG>" 154 + "<SBG:msg-char:1>B1W-1B1W-1B1W-1B2W-1B2W-1</SBG>" 155 + "B2" 156 + "</BC>"; 157 assertEquals(expected, sb.toString()); 160 161 162 sb.setLength(0); 163 logic = new POSTNETLogicImpl(ChecksumMode.CP_CHECK); 164 try { 165 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "753685"); 166 fail("Expected logic implementation to fail because wrong checksum is supplied"); 167 } catch (IllegalArgumentException iae) { 168 } 170 } 171 172 } | Popular Tags |