Пример #1
0
        public void LeController_DeviceAddressReceived()
        {
            var transportMock = new Mock <FakeCommandTransport> {
                CallBase = true
            };

            transportMock
            .Setup(x => x.GetCommandCompletePayload(It.IsAny <byte[]>(), It.IsAny <DataType>()))
            .Returns(new Func <byte[], DataType, byte[]>((data, dataType) =>
            {
                var readBdAddrData = new ReadBdAddrCommand().ToByteArray();
                if (!Enumerable.SequenceEqual(data, readBdAddrData))
                {
                    return(null);
                }
                return(new byte[] { 0x60, 0x50, 0x40, 0x30, 0x20, 0x10 });
            }));

            using (var controller = new LeController(transportMock.Object))
            {
                DeviceAddress deviceAddress = null;
                var           done          = new ManualResetEvent(false);
                controller.DeviceAddressReceived += (sender, e) =>
                {
                    deviceAddress = e.DeviceAddress;
                    done.Set();
                };

                controller.Open();
                Assert.IsTrue(done.WaitOne(1000, false));
                Assert.AreEqual(new byte[] { 0x10, 0x20, 0x30, 0x40, 0x50, 0x60 }, deviceAddress.Address);
            }
        }
Пример #2
0
        public void LeController_DeviceAddressReceived()
        {
            var transportMock = new Mock<FakeCommandTransport> { CallBase = true };
            transportMock
                .Setup(x => x.GetCommandCompletePayload(It.IsAny<byte[]>(), It.IsAny<DataType>()))
                .Returns(new Func<byte[], DataType, byte[]>((data, dataType) =>
                {
                    var readBdAddrData = new ReadBdAddrCommand().ToByteArray();
                    if (!Enumerable.SequenceEqual(data, readBdAddrData))
                        return null;
                    return new byte[] { 0x60, 0x50, 0x40, 0x30, 0x20, 0x10 };
                }));

            using (var controller = new LeController(transportMock.Object))
            {
                DeviceAddress deviceAddress = null;
                var done = new ManualResetEvent(false);
                controller.DeviceAddressReceived += (sender, e) =>
                {
                    deviceAddress = e.DeviceAddress;
                    done.Set();
                };

                controller.Open();
                Assert.IsTrue(done.WaitOne(1000, false));
                Assert.AreEqual(new byte[] { 0x10, 0x20, 0x30, 0x40, 0x50, 0x60 }, deviceAddress.Address);
            }
        }
Пример #3
0
        public void Command_ReadBdAddrCommand()
        {
            var command = new ReadBdAddrCommand();

            Assert.AreEqual(new byte[] { 0x09, 0x10, 0x00 }, command.ToByteArray());
        }