📄 wspdecodertest.java
字号:
/** * JWAP - A Java Implementation of the WAP Protocols * Copyright (C) 2001-2004 Niko Bender * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */package net.sourceforge.jwap.wsp;import junit.framework.TestCase;import net.sourceforge.jwap.wsp.header.Encoding;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.util.Arrays;/** * jUnit test-cases for the WSPDecoder */public class WSPDecoderTest extends TestCase { public WSPDecoderTest(String arg0) { super(arg0); } public void testGetOctet() { byte[] data = { 0, 10, (byte) 200 }; WSPDecoder d = new WSPDecoder(data); assertEquals(0, d.getOctet()); assertEquals(10, d.getOctet()); assertEquals((byte) 200, d.getOctet()); try { d.getOctet(); fail(); } catch (ArrayIndexOutOfBoundsException ex) { } } public void testGetUint8() { byte[] data = { (byte) 200 }; WSPDecoder d = new WSPDecoder(data); assertEquals(200, d.getUint8()); try { d.getOctet(); fail(); } catch (ArrayIndexOutOfBoundsException ex) { } } public void testGetUint16() { byte[] data = { (byte) 0xaa, (byte) 0xbb }; WSPDecoder d = new WSPDecoder(data); assertEquals(0xaabb, d.getUint16()); try { d.getOctet(); fail(); } catch (ArrayIndexOutOfBoundsException ex) { } } public void testGetUint32() { byte[] data = { (byte) 0xaa, (byte) 0xbb, 0x01, 0x10 }; WSPDecoder d = new WSPDecoder(data); assertEquals(0xaabb0110, d.getUint32()); try { d.getOctet(); fail(); } catch (ArrayIndexOutOfBoundsException ex) { } } public void testGetUintVar() throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); out.write(Encoding.uintVar(0)); out.write(Encoding.uintVar(0xff)); out.write(Encoding.uintVar(0x200)); out.write(Encoding.uintVar(0x2000)); out.write(Encoding.uintVar(0x20000)); byte[] data = out.toByteArray(); WSPDecoder d = new WSPDecoder(data); assertEquals(0x0, d.getUintVar()); assertEquals(0xff, d.getUintVar()); assertEquals(0x200, d.getUintVar()); assertEquals(0x2000, d.getUintVar()); assertEquals(0x20000, d.getUintVar()); try { d.getOctet(); fail(); } catch (ArrayIndexOutOfBoundsException ex) { } } public void testGetCString() { WSPDecoder d = new WSPDecoder(new byte[] { 0 }); assertEquals(null, d.getCString()); try { d.getOctet(); fail(); } catch (ArrayIndexOutOfBoundsException ex) { } d = new WSPDecoder("Hello World\0abc\0\0def\0".getBytes()); assertEquals("Hello World", d.getCString()); assertEquals("abc", d.getCString()); assertEquals(null, d.getCString()); assertEquals("def", d.getCString()); try { d.getOctet(); fail(); } catch (ArrayIndexOutOfBoundsException ex) { } } public void testGetBytes() { WSPDecoder d = new WSPDecoder(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 }); assertTrue(Arrays.equals(new byte[] { 1, 2 }, d.getBytes(2))); assertTrue(Arrays.equals(new byte[] { 3, 4, 5, 6 }, d.getBytes(4))); } public void testGetIntegerValue() { long[] numbers = new long[]{0,127,128, 300,4096, Long.MAX_VALUE}; for( int i=0; i< numbers.length; i++) { byte[] data = Encoding.integerValue(numbers[i]); // System.out.println(Utils.hexDump(numbers[i]+": ", data)); WSPDecoder d = new WSPDecoder(data); long l = d.getIntegerValue(); assertEquals(numbers[i],l); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -