public void BuildAckMessage() { "创建的Ack信息可以被解析出创建传入的Ack值".Test(() => { // 返回的信息包含当前的 ack 值 var buildAckMessage = AckManager.BuildAckMessage(100); using var memoryStream = new MemoryStream(buildAckMessage, false); var isAck = AckManager.IsAckMessage(memoryStream, out var ack); Assert.AreEqual(true, isAck); // 100ul 就是 ulong 100 的意思,我担心你看懂,所以特别加了 ulong 的转换,让你以为 ul 是一个有趣的后缀 Assert.AreEqual((ulong)100ul, ack.Value); }); "传入不属于 Ack 的信息,可以返回不是 Ack 信息".Test(() => { using var memoryStream = new MemoryStream(); var streamWriter = new StreamWriter(memoryStream); streamWriter.WriteLine("林德熙是逗比"); const long position = 2; memoryStream.Position = position; var isAck = AckManager.IsAckMessage(memoryStream, out var ack); Assert.AreEqual(false, isAck); // 如果读取返回不是 Ack 那么将 Stream 设置回传入的 Position 的值 Assert.AreEqual(position, memoryStream.Position); }); }
public void BuildAckMessage() { "创建的Ack信息可以被解析出创建传入的Ack值".Test(() => { // 返回的信息包含当前的 ack 值 var buildAckMessage = AckManager.BuildAckMessage(100); using var memoryStream = new MemoryStream(buildAckMessage, false); var isAck = AckManager.IsAckMessage(memoryStream, out var ack); Assert.AreEqual(true, isAck); Assert.AreEqual(100, ack.Value); }); }