namespace Nonemm.Keying.Tests; public class WinkeyerStatusTests { [Fact] public void SendingEndsWhenTheBusyFlagClears() { WinkeyerStatus status = new(); Assert.False(status.Read(0xC4)); Assert.True(status.IsSending); Assert.True(status.Read(0xC0)); Assert.False(status.IsSending); } [Fact] public void AStatusByteThatRepeatsTheLastOneIsNotAnEnding() { WinkeyerStatus status = new(); status.Read(0xC4); status.Read(0xC0); Assert.False(status.Read(0xC0)); } [Fact] public void ClearingTheBusyFlagWithTheBreakInFlagSetStillEndsIt() { WinkeyerStatus status = new(); status.Read(0xC4); Assert.True(status.Read(0xC2)); } /// The speed pot and the characters the keyer echoes say nothing about the /// buffer. [Theory] [InlineData(0x80)] [InlineData(0xBF)] [InlineData((byte)'K')] public void OtherBytesAreNotStatus(byte value) { WinkeyerStatus status = new(); status.Read(0xC4); Assert.False(status.Read(value)); Assert.True(status.IsSending); } }