public void Given_TheAddressIncrementIsIncorrect_When_ParseIsCalled_Then_NullIsReturned() { List <byte> bytes = new List <byte>(); UInt16 propertyCount = 5; byte length = (byte)(DMPLayer.MinLength + propertyCount); UInt16 expectedFlagsAndLength = (UInt16)(0x7 << 12 | length); bytes.AddRange(new byte[] { 0x7 << 4, (length) }); // flags and length DMPLayerVector expectedVector = DMPLayerVector.VECTOR_DMP_SET_PROPERTY; bytes.Add((byte)expectedVector); // Vector byte expectedAddressAndDataType = DMPLayer.AddressTypeAndDataType; bytes.Add(expectedAddressAndDataType); bytes.AddRange(new byte[] { 0, 0 }); // first property address bytes.AddRange(new byte[] { 0, 42 }); // address increment bytes.AddRange(new byte[] { 0, (byte)propertyCount }); // property count var expectedProperties = Enumerable.Range(0, propertyCount).Select(x => (byte)x); bytes.Add(0); // start code bytes.AddRange(expectedProperties); var dmpLayer = DMPLayer.Parse(bytes.ToArray()); Assert.Null(dmpLayer); }
public void Given_TheDataIsCorrect_When_ParseIsCalled_Then_TheDataIsParsedAsExpected() { UInt16 propertyCount = 5; var expectedProperties = Enumerable.Range(0, propertyCount).Select(x => (byte)x); var bytes = GetDMPLayer(expectedProperties); var dmpLayer = DMPLayer.Parse(bytes.ToArray()); Assert.Equal(DMPLayerVector.VECTOR_DMP_SET_PROPERTY, dmpLayer.Vector); Assert.Equal(propertyCount, dmpLayer.PropertyValues.Count()); Assert.Equal(expectedProperties.ToArray(), dmpLayer.PropertyValues); }