package net.tomp2p.message;
import java.util.Random;
import net.tomp2p.message.Message2.Content;
import org.junit.Assert;
import org.junit.Test;
public class TestCodec {
@Test
public void testStreaming() {
Message2 msg = new Message2();
}
@Test
public void testContentTypeCodec() {
Random rnd = new Random(42);
for (int i = 0; i < 100; i++) {
System.err.println("Round "+i);
Content[] types1 = initContentTypes(rnd);
int nr = MessageHeaderCodec.encodeContentTypes(types1);
Content[] types2 = MessageHeaderCodec.decodeContentTypes(nr, new Message2());
compare(types2, types1);
}
}
private void compare(Content[] types2, Content[] types1) {
Assert.assertEquals(types1.length, types2.length);
for(int i=0;i<types1.length;i++) {
if(types1[i] == null) {
types1[i] = Content.EMPTY;
}
}
Assert.assertArrayEquals(types2, types1);
}
private Content[] initContentTypes(Random rnd) {
Content[] contents = new Content[Message2.CONTENT_TYPE_LENGTH];
int len = rnd.nextInt(9);
for (int i = 0; i < len; i++) {
contents[i] = Content.values()[rnd.nextInt(8)];
}
return contents;
}
}