public void Binary_encoder_exception()
        {
            IBinaryEncoder encoder = new BinaryEncoder();

            Assert.Throws <Exception>(() => encoder.EncodeNext(0x3b342313, 9));
            Assert.Throws <Exception>(() => encoder.EncodeNext(0x3b342313, 0));
        }
        public string Encode(List <IndoorTagPayloadInfo> payloads)
        {
            StringBuilder result = new StringBuilder();

            foreach (var payload in payloads)
            {
                _encoder.EncodeNext(payload.MacAddress);
                _encoder.EncodeNext(payload.Rss, 2);
                _encoder.EncodeNext(payload.BatteryLevel, 2);
                result.Append(_encoder.Build());
                _encoder.Reset();
            }
            return(result.ToString());
        }
        public void Binary_encoder_encoding()
        {
            Assert.Equal("3B342313", new BinaryEncoder().EncodeNext(0x3b342313, 8).Build());
            Assert.Equal("0008", new BinaryEncoder().EncodeNext(8, 4).Build());
            Assert.Equal("F8", new BinaryEncoder().EncodeNext(-8, 2).Build());
            Assert.Equal("51", new BinaryEncoder().EncodeNext(81, 2).Build());

            BinaryEncoder encoder2 = new BinaryEncoder();

            Assert.Equal("1918FC01F04DF851", encoder2.EncodeNext("1918FC01F04D").EncodeNext(-8, 2).EncodeNext(81, 2).Build());
        }