package freenet.client;
import java.io.DataOutputStream;
import java.io.IOException;
import freenet.support.io.CountedOutputStream;
import freenet.support.io.NullOutputStream;
import junit.framework.TestCase;
public class FailureCodeTrackerTest extends TestCase {
/** Test that the fixed size representation really is fixed size */
public void testSize() throws IOException {
testSize(false);
testSize(true);
}
public void testSize(boolean insert) throws IOException {
FailureCodeTracker f = new FailureCodeTracker(insert);
int fixedLength = FailureCodeTracker.getFixedLength(insert);
assertEquals(fixedLength, getStoredLength(f));
f.inc(1);
assertEquals(fixedLength, getStoredLength(f));
f.inc(2, 2);
assertEquals(fixedLength, getStoredLength(f));
}
private int getStoredLength(FailureCodeTracker f) throws IOException {
CountedOutputStream os = new CountedOutputStream(new NullOutputStream());
DataOutputStream dos = new DataOutputStream(os);
f.writeFixedLengthTo(dos);
dos.close();
return (int) os.written();
}
}