import java.util.Random; import java.util.Vector; import net.sharenav.util.StringTokenizer; import junit.framework.TestCase; public class StringTokenizerTests extends TestCase { private String initString() { char[] byteBuff = new char[100]; Random r = new Random(); byteBuff[0] = 65; for (int i = 1; i < byteBuff.length - 1; i++) { switch (r.nextInt(10)) { case 0: { byteBuff[i] = 44; if (i < byteBuff.length - 1) { // Need to add this, as the builtin Stringtokenizer // ignores multiple consecutive seperators, whereas // our implementation doesn't byteBuff[++i] = 65; } break; } case 1: case 2: case 3: case 4: case 5: { byteBuff[i] = (char) (r.nextInt(26) + 65); break; } default: { byteBuff[i] = (char) r.nextInt(Short.MAX_VALUE); byteBuff[i] = (char) (r.nextInt(127) + 65); } } } // Need to add this, as the builtin Stringtokenizer // ignores multiple consecutive seperators, whereas // our implementation doesn't byteBuff[byteBuff.length - 1] = 65; String untokenized = new String(byteBuff); return untokenized; } public void testGetVector() { for (int i = 0; i < 30; i++) { String untokenized = initString(); java.util.StringTokenizer st = new java.util.StringTokenizer(untokenized,","); StringTokenizer stj2me = new StringTokenizer(); Vector<String> tokens = StringTokenizer.getVector(untokenized, ","); assertEquals(st.countTokens(), tokens.size()); for (String s : tokens) { assertEquals(st.nextElement(), s); } } String untokenized = ",,,,,"; Vector<String> tokens = StringTokenizer.getVector(untokenized, ","); assertEquals(6, tokens.size()); for (String s : tokens) { assertTrue(s.equalsIgnoreCase("")); } } public void testGetArray() { for (int i = 0; i < 30; i++) { String untokenized = initString(); java.util.StringTokenizer st = new java.util.StringTokenizer(untokenized,","); StringTokenizer stj2me = new StringTokenizer(); String[] tokens = StringTokenizer.getArray(untokenized, ","); //assertEquals(st.countTokens(), tokens.length); for (String s : tokens) { String ss = (String)st.nextElement(); assertEquals(ss, s); } } } }