package test.net.tcp.codec;
import static org.hamcrest.Matchers.is;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import com.firefly.net.tcp.codec.CharParser;
public class CharParserTest {
@Test
public void test() {
String msg = "测试的字符串";
StringBuilder ret = new StringBuilder();
CharParser parser = new CharParser();
parser.complete(str -> {
ret.append(str);
System.out.println(ret);
if (ret.length() == msg.length()) {
System.out.println("complete -> " + ret);
Assert.assertThat(ret.toString(), is(msg));
}
});
List<ByteBuffer> buffers = new ArrayList<>();
ByteBuffer b = ByteBuffer.wrap(msg.getBytes(StandardCharsets.UTF_8));
byte[] b1 = new byte[6];
b.get(b1);
buffers.add(ByteBuffer.wrap(b1));
byte[] b2 = new byte[2];
b.get(b2);
buffers.add(ByteBuffer.wrap(b2));
byte[] b3 = new byte[4];
b.get(b3);
buffers.add(ByteBuffer.wrap(b3));
byte[] b4 = new byte[5];
b.get(b4);
buffers.add(ByteBuffer.wrap(b4));
byte[] b5 = new byte[1];
b.get(b5);
buffers.add(ByteBuffer.wrap(b5));
buffers.forEach(parser::receive);
}
}