package freenet.node.probe;
import junit.framework.TestCase;
import java.util.HashSet;
/**
* Tests conversion from code and code validity.
*/
public class ErrorTest extends TestCase {
public void testValidCodes() {
for (Error t : Error.values()) {
final byte code = t.code;
if (Type.isValid(code)) {
try {
Error error = Error.valueOf(code);
//Code of enum should match.
assertEquals(error.code, code);
} catch (IllegalArgumentException e) {
//Should not throw - was determined to be valid.
assertTrue("valueOf() threw when given valid code " + code + ". (" + t.name() + ")", false);
}
} else {
assertTrue("isValid() returned false for valid code " + code +". (" + t.name() + ")", false);
}
}
}
public void testInvalidCodes() {
HashSet<Byte> validCodes = new HashSet<Byte>();
for (Error error : Error.values()) {
validCodes.add(error.code);
}
for (byte code = Byte.MIN_VALUE; code <= Byte.MAX_VALUE; code++) {
if (validCodes.contains(code)) continue;
if (Error.isValid(code)) {
assertTrue("isValid() returned true for invalid code " + code + ".", false);
}
if (code == Byte.MAX_VALUE) return;
}
}
}