Example #1
0
        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);
        }
Example #2
0
        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);
        }