[freenet-cvs] r13758 - trunk/freenet/test/freenet/support

sback at freenetproject.org sback at freenetproject.org
Tue Jun 26 11:44:14 UTC 2007


Author: sback
Date: 2007-06-26 11:44:13 +0000 (Tue, 26 Jun 2007)
New Revision: 13758

Modified:
   trunk/freenet/test/freenet/support/HexUtilTest.java
Log:
Added bitsToByte(BitSet,int) method tests

Modified: trunk/freenet/test/freenet/support/HexUtilTest.java
===================================================================
--- trunk/freenet/test/freenet/support/HexUtilTest.java	2007-06-26 09:48:37 UTC (rev 13757)
+++ trunk/freenet/test/freenet/support/HexUtilTest.java	2007-06-26 11:44:13 UTC (rev 13758)
@@ -17,6 +17,7 @@
 package freenet.support;
 
 import java.util.Arrays;
+import java.util.BitSet;
 
 import junit.framework.TestCase;
 
@@ -48,6 +49,7 @@
 	 * Test the hexToBytes(String) method
 	 * against the hex representation of
 	 * every possible single byte.
+	 * The starting offset is always 0.
 	 */
 	public void testHexToBytes_String() {
 		byte[] expectedByteArray = new byte[1];
@@ -102,6 +104,37 @@
 	}
 	
 	/**
+	 * Test the bitsToByte(BitSet,int) method
+	 * against the bit representation of
+	 * every possible single byte.
+	 */
+	public void testBitsToBytes_BitSetInt() {
+		byte[] expectedByteArray = new byte[1];
+		byte[] outputArray = new byte[1];
+		BitSet methodBitSet = new BitSet(8);
+		for (int i = 0; i < 256; i++) {
+			outputArray = HexUtil.bitsToBytes(methodBitSet, 8);
+			expectedByteArray[0] = (byte)i;
+			assertTrue(Arrays.equals(expectedByteArray,outputArray));
+			addOne(methodBitSet);
+		}
+	}
+	
+	/**
+	 * It adds 1 to a given BitSet 
+	 * @param aBitSet
+	 */
+	private void addOne(BitSet aBitSet) {
+		int bitSetIndex = 0;
+		while (aBitSet.get(bitSetIndex)==true) {
+			aBitSet.flip(bitSetIndex);
+			bitSetIndex++;
+		}
+		aBitSet.flip(bitSetIndex);
+		//return aBitSet;
+	}
+	
+	/**
 	 * Test bytesToHex(byte[],int,int) method
 	 * with a too long starting offset. The tested
 	 * method should raise an exception.
@@ -140,4 +173,74 @@
 		byte[] methodBytesArray = {1,2,3};		//a non-zero bytes array
 		assertEquals("",HexUtil.bytesToHex(methodBytesArray,0,length));
 	}
+	
+	/**
+	 * Test hexToBytes(String,byte[],int) method
+	 * with a too long offset.
+	 * The method should raise an exception.
+	 */
+	public void testHexToBytes_StringByteInt_WithLongOffset() {
+        try {
+        	String methodString = "0";
+        	byte[] methodByteArray = new byte[1];
+    		HexUtil.hexToBytes(methodString,methodByteArray,methodByteArray.length);
+            fail("Expected Exception Error Not Thrown!"); } 
+        catch (IllegalArgumentException anException) {
+            assertNotNull(anException); }
+    }
+	
+	/**
+	 * Test hexToBytes(String,byte[],int) method
+	 * with a too short byte[] to put the result.
+	 * The method should raise an exception.
+	 */
+	public void testHexToBytes_StringByteInt_WithShortArray() {
+        try {
+        	String methodString = "0000";
+        	byte[] methodByteArray = new byte[1];
+    		HexUtil.hexToBytes(methodString,methodByteArray,0);
+            fail("Expected Exception Error Not Thrown!"); } 
+        catch (IndexOutOfBoundsException anException) {
+            assertNotNull(anException); }
+    }
+	
+	/**
+	 * Test all hexToBytes() methods
+	 * with a not valid character.
+	 * The method should raise an exception. 
+	 */
+	public void testHexToBytes_WithBadDigit() {
+		String methodString = "00%0";
+		try {
+        	byte[] methodByteArray = new byte[methodString.length()];
+    		HexUtil.hexToBytes(methodString,methodByteArray,0);
+            fail("Expected Exception Error Not Thrown!"); } 
+        catch (NumberFormatException anException) {
+            assertNotNull(anException); }
+        try {
+    		HexUtil.hexToBytes(methodString,0);
+            fail("Expected Exception Error Not Thrown!"); } 
+        catch (NumberFormatException anException) {
+            assertNotNull(anException); }
+        try {
+    		HexUtil.hexToBytes(methodString);
+            fail("Expected Exception Error Not Thrown!"); } 
+        catch (NumberFormatException anException) {
+            assertNotNull(anException); }
+    }
+	
+	/**
+	 * Test the bitsToByte(BitSet,int) method
+	 * using a size smaller than the actual number
+	 * of bits in the BitSet.
+	 */
+	public void testBitsToBytes_WithShortSize() {
+		byte[] expectedByteArray = new byte[1];
+		byte[] outputArray = new byte[1];
+		BitSet methodBitSet = new BitSet(8);
+		methodBitSet.flip(3);
+		outputArray = HexUtil.bitsToBytes(methodBitSet,2);
+		expectedByteArray[0] = (byte)0;
+		assertTrue(Arrays.equals(expectedByteArray,outputArray));
+	}
 }




More information about the cvs mailing list