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 Interleaved2Of5Test extends TestCase { 70 71 public Interleaved2Of5Test(String name) { 72 super(name); 73 } 74 75 public void testChecksum() throws Exception { 76 assertEquals('5', Interleaved2Of5LogicImpl.calcChecksum("123456789")); 78 79 assertTrue(Interleaved2Of5LogicImpl.validateChecksum("1234567895")); 80 assertFalse(Interleaved2Of5LogicImpl.validateChecksum("1234567896")); 81 82 assertEquals('6', Interleaved2Of5LogicImpl.calcChecksum("12345678901", 4, 9)); 84 } 85 86 public void testLogic() throws Exception { 87 StringBuffer sb = new StringBuffer (); 88 Interleaved2Of5LogicImpl logic; 89 String expected; 90 91 logic = new Interleaved2Of5LogicImpl(ChecksumMode.CP_AUTO); 92 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "12345670"); 93 expected = "<BC><SBG:start-char:null>B1W1B1W1</SBG>" 94 + "<SBG:msg-char:12>B2W1B1W2B1W1B1W1B2W2</SBG>" 95 + "<SBG:msg-char:34>B2W1B2W1B1W2B1W1B1W2</SBG>" 96 + "<SBG:msg-char:56>B2W1B1W2B2W2B1W1B1W1</SBG>" 97 + "<SBG:msg-char:70>B1W1B1W1B1W2B2W2B2W1</SBG>" 98 + "<SBG:stop-char:null>B2W1B1</SBG>" 99 + "</BC>"; 100 assertEquals(expected, sb.toString()); 103 104 105 sb.setLength(0); 106 logic = new Interleaved2Of5LogicImpl(ChecksumMode.CP_ADD); 107 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "12345670"); 108 expected = "<BC><SBG:start-char:null>B1W1B1W1</SBG>" 109 + "<SBG:msg-char:01>B1W2B1W1B2W1B2W1B1W2</SBG>" 110 + "<SBG:msg-char:23>B1W2B2W2B1W1B1W1B2W1</SBG>" 111 + "<SBG:msg-char:45>B1W2B1W1B2W2B1W1B2W1</SBG>" 112 + "<SBG:msg-char:67>B1W1B2W1B2W1B1W2B1W2</SBG>" 113 + "<SBG:msg-char:00>B1W1B1W1B2W2B2W2B1W1</SBG>" 114 + "<SBG:stop-char:null>B2W1B1</SBG>" 115 + "</BC>"; 116 assertEquals(expected, sb.toString()); 119 120 121 sb.setLength(0); 122 logic = new Interleaved2Of5LogicImpl(ChecksumMode.CP_CHECK); 123 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "123456700"); 124 assertEquals(expected, sb.toString()); 128 129 130 sb.setLength(0); 131 logic = new Interleaved2Of5LogicImpl(ChecksumMode.CP_CHECK); 132 try { 133 logic.generateBarcodeLogic(new MockClassicBarcodeLogicHandler(sb), "123456706"); 134 fail("Expected logic implementation to fail because wrong checksum is supplied"); 135 } catch (IllegalArgumentException iae) { 136 } 138 } 139 140 } | Popular Tags |