package com.ctriposs.baiji.io;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
@RunWith(Parameterized.class)
public class BinaryCodecTestString extends BinaryCodecTestBase {
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{new Object[]{"", 1},
new Object[]{"hello", 1},
new Object[]{"1234567890123456789012345678901234567890123456789012345678901234", 2},
new Object[]{"你好世界", 1}});
}
private final String _data;
private final int _overhead;
public BinaryCodecTestString(String data, int overhead) {
_data = data;
_overhead = overhead;
}
@Test
public void testString() throws IOException {
ItemDecoder decoder = new ItemDecoder() {
@Override
public Object decode(Decoder decoder) throws IOException {
return decoder.readString();
}
};
ItemEncoder encoder = new ItemEncoder() {
@Override
public void encode(Encoder encoder, Object obj) throws IOException {
encoder.writeString((String) obj);
}
};
testRead(_data, decoder, encoder, _data.getBytes("utf-8").length + _overhead);
}
}