public void Test_Constructor_ConstructWithValues() { var frame = new AcknowledgmentFrame(PhysicalAddress.Parse("111111111111")) { FrameControl = { ToDS = false, FromDS = true, MoreFragments = true }, Duration = { Field = 0x1234 } }; frame.UpdateFrameCheckSequence(); var fcs = frame.FrameCheckSequence; //serialize the frame into a byte buffer var bytes = frame.Bytes; var byteArraySegment = new ByteArraySegment(bytes); //create a new frame that should be identical to the original var recreatedFrame = MacFrame.ParsePacket(byteArraySegment) as AcknowledgmentFrame; recreatedFrame.UpdateFrameCheckSequence(); Assert.AreEqual(FrameControlField.FrameSubTypes.ControlAck, recreatedFrame.FrameControl.SubType); Assert.IsFalse(recreatedFrame.FrameControl.ToDS); Assert.IsTrue(recreatedFrame.FrameControl.FromDS); Assert.IsTrue(recreatedFrame.FrameControl.MoreFragments); Assert.AreEqual("111111111111", recreatedFrame.ReceiverAddress.ToString().ToUpper()); Assert.AreEqual(fcs, recreatedFrame.FrameCheckSequence); }
public void Test_ConstructorWithCorruptBuffer() { //buffer is way too short for frame. We are just checking it doesn't throw byte[] corruptBuffer = { 0x01 }; var frame = new AcknowledgmentFrame(new ByteArraySegment(corruptBuffer)); Assert.IsFalse(frame.FcsValid); }