public async Task ReadMessageAsync_WhenReceiveWrongCRC_ShouldReturnInterruptionInvalidCrc() { var pipe = await new ByteArrayBuilder() .Add(Bytes.SYN) .Add("ABCDEFG") .Add(Bytes.ETB) .Add(0x11, 0x22) .BuildPipeAsync(); var sut = new PipeMessageReader(pipe.Reader); var msg = await sut.ReadMessageAsync(); var @int = msg.ShouldBeInterruption(); @int.ShouldBe(ResponseInterruption.InvalidCrc); }
public async Task ReadMessageAsync_WhenReceiveMessage_WithLengthAtMost1024_ShouldReturnInterruptInvalidCrc(int length) { var pipe = await new ByteArrayBuilder() .Add(Bytes.SYN) .Add(new string('a', length)) .Add(Bytes.ETB) .Add(0x11, 0x22) .BuildPipeAsync(); var sut = new PipeMessageReader(pipe.Reader); var msg = await sut.ReadMessageAsync(); var @int = msg.ShouldBeInterruption(); @int.ShouldBe(ResponseInterruption.InvalidCrc); }
public async Task ReadMessageAsync_WhenReceiveWellFormattedMessage_ShouldReturnData(string payload, byte crcByte1, byte crcByte2) { var pipe = await new ByteArrayBuilder() .Add(Bytes.SYN) .Add(payload) .Add(Bytes.ETB) .Add(crcByte1, crcByte2) .BuildPipeAsync(); var sut = new PipeMessageReader(pipe.Reader); var msg = await sut.ReadMessageAsync(); var data = msg.ShouldBeData(); data.Length.ShouldBe(payload.Length); data.ShouldBeInAscii(payload); }
public async Task ReadMessageAsync_WhenReceiveMessage_WithByteOutOfRange_ShouldReturnInterruptInvalidMessage(byte byteOutOfRange) { var pipe = await new ByteArrayBuilder() .Add(Bytes.SYN) .Add("ABCD") .Add(byteOutOfRange) .Add("EFGH") .Add(Bytes.ETB) .Add(0x11, 0x22) .BuildPipeAsync(); var sut = new PipeMessageReader(pipe.Reader); var msg = await sut.ReadMessageAsync(); var @int = msg.ShouldBeInterruption(); @int.ShouldBe(ResponseInterruption.InvalidMessage); }