public void one_and_incomplete_nolengthframe() { string AText = "AAAAAA"; var bytes = new byte[13] { 06, 00, 00, 00, 65, 65, 65, 65, 65, 65, 06, 00, 00 }; var incomplete = new byte[3] { 06, 00, 00 }; var buf = AbstructByteBuf.Small(); buf.Write(bytes); var output = new List <object>(); decoder.Decoder(ctx, buf, output); Assert.IsTrue(output != null && output.Count == 1); Assert.IsTrue(ctx.IncompleteMessage == null); Assert.IsTrue(ctx.IncompleteLength == 3); var result = output[0] as IByteBuf; var resultText = System.Text.Encoding.UTF8.GetString(result.GetBytes(), result.ReadIndex, result.Readables()); Assert.AreEqual(AText, resultText); }
public void bytebuf_base_setoffset_test() { IByteBuf buf = new AbstructByteBuf(256); buf.SetOffset(1); Assert.AreEqual(buf.Offset, 1); Assert.AreEqual(buf.Capacity, 255); try { buf.SetOffset(-1); Assert.Fail(); } catch (ArgumentException) { Assert.IsTrue(true); } try { buf.SetOffset(256); Assert.Fail(); } catch (ArgumentException) { Assert.IsTrue(true); } }
public void one_and_incomplete() { string AText = "AAAAAA"; var bytes = new byte[15] { 06, 00, 00, 00, 65, 65, 65, 65, 65, 65, 06, 00, 00, 00, 66 }; var incomplete = new byte[1] { 66 }; var buf = AbstructByteBuf.Small(); buf.Write(bytes); var output = new List <object>(); decoder.Decoder(ctx, buf, output); Assert.IsTrue(output != null && output.Count == 1); Assert.IsTrue(ctx.IncompleteMessage != null); Assert.AreEqual(ctx.IncompleteHeader, 6); for (int i = 0; i < ctx.IncompleteMessage.Readables(); i++) { int readindex = ctx.IncompleteMessage.ReadIndex; Assert.AreEqual(ctx.IncompleteMessage.GetBytes()[readindex + i], incomplete[i]); } var result = output[0] as IByteBuf; var resultText = System.Text.Encoding.UTF8.GetString(result.GetBytes(), result.ReadIndex, result.Readables()); Assert.AreEqual(AText, resultText); }
public void bytebuf_base_init_test() { IByteBuf buf = new AbstructByteBuf(256); Assert.AreEqual(buf.Capacity, 256); Assert.AreEqual(buf.ReadIndex, 0); Assert.AreEqual(buf.WriteIndex, 0); Assert.AreEqual(buf.Readables(), 0); Assert.AreEqual(buf.Writeables(), 256); }
public void bytebuf_base_init_setbytes_offset_test() { IByteBuf buf = new AbstructByteBuf(); byte[] arr = new byte[256]; buf.SetBytes(arr, 10, 64); Assert.AreEqual(buf.Offset, 10); Assert.AreEqual(buf.ReadIndex, 10); Assert.AreEqual(buf.WriteIndex, 10); Assert.AreEqual(buf.Readables(), 0); Assert.AreEqual(buf.Writeables(), 64); }
public void bytebuf_write_array_test() { IByteBuf buf = new AbstructByteBuf(256); byte[] arr = { 0, 1, 2, 3, 4 }; buf.SetOffset(1); buf.Write(arr); Assert.AreEqual(buf.Offset, 1); Assert.AreEqual(buf.ReadIndex, 1); Assert.AreEqual(buf.WriteIndex, 6); Assert.AreEqual(buf.Readables(), 5); Assert.AreEqual(buf.Writeables(), 250); }
public void bytebuf_write_bytebuf_offset_test() { var buf1 = new AbstructByteBuf(256); var buf2 = new AbstructByteBuf(9); for (byte i = 0; i < 9; i++) { buf2.WriteByte(i); } buf1.SetOffset(1); buf1.Write(buf2, 7); Assert.AreEqual(buf1.Offset, 1); Assert.AreEqual(buf1.ReadIndex, 1); Assert.AreEqual(buf1.WriteIndex, 8); Assert.AreEqual(buf1.Readables(), 7); Assert.AreEqual(buf1.Writeables(), 248); }
public void incomplete() { string AText = "BBBBBB"; /* * * 原始数据第一个包 { 06, 00, 00, 00, 66 } * 第二个包 {66, 66, 66, 66, 66 } * 半包数据 { 66 } * 包长 6 * 包长已读:4 * */ var bytes1 = new byte[5] { 06, 00, 00, 00, 66 }; var bytes2 = new byte[5] { 66, 66, 66, 66, 66 }; var output = new List <object>(); //数据包 var buf = AbstructByteBuf.Small().Write(bytes2); //虚构一个半包 ctx.IncompleteMessage = AbstructByteBuf.Small().WriteByte(66); ctx.IncompleteHeader = 06; ctx.IncompleteLength = 4; decoder.Decoder(ctx, buf, output); Assert.AreEqual(output.Count, 1); var outbuf = (IByteBuf)output[0]; var outstring = System.Text.Encoding.UTF8.GetString(outbuf.GetBytes(), outbuf.ReadIndex, outbuf.Readables()); Assert.AreEqual(outstring, AText); }
public void bytebuf_base_return_test() { IByteBuf buf = new AbstructByteBuf(4); buf.SetOffset(1).WriteByte(1).ReadByte(); Assert.AreEqual(buf.Offset, 1); Assert.AreEqual(buf.ReadIndex, 2); Assert.AreEqual(buf.WriteIndex, 2); Assert.AreEqual(buf.Readables(), 0); Assert.AreEqual(buf.Writeables(), 2); Assert.AreEqual(buf.Capacity, 3); buf.Return(); Assert.AreEqual(buf.Offset, 0); Assert.AreEqual(buf.ReadIndex, 0); Assert.AreEqual(buf.WriteIndex, 0); Assert.AreEqual(buf.Readables(), 0); Assert.AreEqual(buf.Writeables(), 0); Assert.AreEqual(buf.Capacity, 0); Assert.AreEqual(buf.GetBytes(), AbstructByteBuf.Emtpy); }
public void bytebuf_writeread_int_test() { IByteBuf buf = new AbstructByteBuf(256); buf.SetOffset(1); buf.Write(1); Assert.AreEqual(buf.Offset, 1); Assert.AreEqual(buf.ReadIndex, 1); Assert.AreEqual(buf.WriteIndex, 5); Assert.AreEqual(buf.Readables(), 4); Assert.AreEqual(buf.Writeables(), 251); int b = buf.ReadInt32(); Assert.AreEqual(b, 1); Assert.AreEqual(buf.Offset, 1); Assert.AreEqual(buf.ReadIndex, 5); Assert.AreEqual(buf.WriteIndex, 5); Assert.AreEqual(buf.Readables(), 0); Assert.AreEqual(buf.Writeables(), 251); }
public void bytebuf_writeread_byte_test() { IByteBuf buf = new AbstructByteBuf(256); buf.SetOffset(1); buf.WriteByte((byte)1); Assert.AreEqual(buf.Offset, 1); Assert.AreEqual(buf.ReadIndex, 1); Assert.AreEqual(buf.WriteIndex, 2); Assert.AreEqual(buf.Readables(), 1); Assert.AreEqual(buf.Writeables(), 254); byte b1 = buf.ReadByte(); Assert.AreEqual(b1, 1); Assert.AreEqual(buf.Offset, 1); Assert.AreEqual(buf.ReadIndex, 2); Assert.AreEqual(buf.WriteIndex, 2); Assert.AreEqual(buf.Readables(), 0); Assert.AreEqual(buf.Writeables(), 254); }