package com.limegroup.gnutella.util;
import junit.framework.Test;
/**
* Tests for UUID.
*/
public final class UUIDTest extends com.limegroup.gnutella.util.BaseTestCase {
/**
* Constructs a new test instance for responses.
*/
public UUIDTest(String name) {
super(name);
}
public static Test suite() {
return buildTestSuite(UUIDTest.class);
}
/**
* Runs this test individually.
*/
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public void testUUID() throws Exception {
UUID uuid = UUID.nextUUID();
String string = uuid.toString();
assertEquals(36, string.length());
for(int i = 0; i < 36; i++) {
char c = string.charAt(i);
if(i == 8 || i == 13 || i == 18 || i == 23)
assertEquals('-', c);
else {
switch(c) {
case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
case '0': case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9': break;
default:
fail("invalid uuid: " + string);
}
}
}
String one = "abcdef12-3456-789a-bcde-f1234567890a";
String two = "cbcdef12-3456-789a-bcde-f1234567890a";
UUID a = new UUID(one);
UUID b = new UUID(two);
UUID c = new UUID(one);
assertEquals(a, c);
assertNotEquals(b, a);
assertNotEquals(b, c);
assertEquals(c, a);
assertEquals(a.hashCode(), c.hashCode());
String bad = one + "x";
try {
new UUID(bad);
fail("expected exception");
} catch(IllegalArgumentException expected) {}
String badTwo = one.substring(0, 35);
try {
new UUID(badTwo);
fail("expected exception");
} catch(IllegalArgumentException expected) {}
}
}